我想选择在列中具有逗号分隔值的行。
在我使用FIND_IN_SET(needle,source)方法匹配单个值之前。
mysql表就像
id data
1 -a-,-b-,-c-
2 -f-,-g-,-h-
3 -a-,-b-,-h-
我想获取在数据列中具有-c-,-p-,-h-的行。
最佳答案
戈登是正确的。 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
它将以任何顺序查找包含您提到的所有三个标记的行。
关于mysql - 如何在mysql中将逗号分隔的字符串与逗号分隔的值相匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54478903/