我想搜索多行并获取包含特定项目的行。
mySQL 中的表已设置,因此每个 id 都有一个唯一的每行值列表(逗号分隔)。
前任:
id | order
1 | 1,3,8,19,34,2,38
2 | 4,7,2,190,38
现在,如果我想拉出仅包含数字 19 的行,我将如何执行此操作?我可以在具有 LIKE 条件的列表中计算出的可能性是:
19, <-- 19 at the start of the list
,19 <-- 19 at the end of the list
,19, <-- 19 inside the list
我尝试了以下方法,但无法获得任何结果,谢谢您的帮助!
SELECT *
FROM categories
WHERE order LIKE '19,%' OR '%,19%' OR '%,19%'
LIMIT 0 , 30
最佳答案
您可以使用 FIND_IN_SET
以更简单的方式解决您的问题:
SELECT *
FROM categories
WHERE FIND_IN_SET('19', `order`)
LIMIT 0, 30
一般来说,尽管您应该尝试设计您的数据库,以便不需要这种类型的操作。
关于mysql - SQL 中的多个 LIKE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2940351/