我想搜索多行并获取包含特定项目的行。

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/

10-13 08:57