这是我一直在思考几个小时但仍然无法得到答案的问题。
所以,我有这个名为“订单”的 mysql 表
+-----------------------------+
+ id | include +
+-----------------------------+
+ 1 | 4,7,9 +
+ 2 | 1,23,8 +
+ 3 | 11,6,3 +
+ 4 | 2,56,32,6 +
+-----------------------------+
当包含列中有一个数字时,我想选择一行。
例如我试过这个:
SELECT * FROM `orders` WHERE `include` LIKE '%1%'
但问题是它选择了第 2 行和第 3 行,因为数字“11”包含“1”。
我需要两个查询:当包含表包含“x”时,以及当包含表不包含“x”时。
有人知道怎么做吗?
最佳答案
SELECT * FROM `orders`
WHERE find_in_set(1, `include`) > 0
但通常情况下,更改表结构并在列中仅存储一个值会更好。这是数据库规范化的第三条规则。
关于php - 在逗号分隔的字符串mysql中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918977/