我想选择具有逗号分隔值且列中以逗号分隔值的行。
在我使用FIND_IN_SET(needle,source)方法匹配单个值之前。
Mysql表就像
id data
1 -a-,-b-,-c-
2 -f-,-g-,-h-
3 -a-,-b-,-h-
我想获取在数据列中具有-c-,-p-,-h-的行。
答案 0 :(得分:1)
戈登是正确的。 SQL列中以逗号分隔的值的字符串是数据库设计中的第一反模式。它需要对SQL的所有优化和完善,然后将其丢弃。通过添加另一个表来尽快修复它。
与此同时,您可以尝试
SELECT whatever
FROM table
WHERE FIND_IN_SET('-c-', data) > 0
AND FIND_IN_SET('-p-', data) > 0
AND FIND_IN_SET('-h-', data) > 0
以任意顺序查找包含您提到的所有三个标记的行。