编写查询语句以满足以下要求: 请按照以下要求编写SELECT查询:

3
这是我的users表: http://ezinfotec.com/Capture.PNG 我需要选择所有行,除了在except列中包含2的行。如何使用php和Mysql编写此查询?
我期望这个查询的结果只返回最后一行。
谢谢。

你尝试过什么? - itsjeyd
3个回答

3

不要在表中存储逗号分隔的值,这是非常糟糕的做法,不过你可以使用FIND_IN_SET函数。

SELECT
  *
FROM 
  users
WHERE 
  NOT FIND_IN_SET('2', except)

1
请问为什么我们不应该在表格中存储逗号分隔的值?我只是想知道原因。 - Rakesh Shetty
2
因为您需要额外的工作将它们转换成可读或可操作的格式。这就是为什么MySQL是关系型数据库,您可以使用众所周知的关系,例如多对多。 - Royal Bg
1
有一个关于在列中存储逗号分隔值的综合SO文章,链接为https://dev59.com/gHA65IYBdhLWcg3wvxaE#3653574。 - Ende Neu

1
尝试这个:

SELECT *
FROM users 
WHERE CONCAT(',', except, ',') NOT LIKE '%,2,%'

0

这应该适合你的需求

SELECT *
FROM table
WHERE table.except NOT LIKE '%,2%'
OR table.except NOT LIKE '%2,%';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接