我想基于"联系人"执行查询。表格列#34;合作伙伴"。我有这样的伴侣:
ID Name Partners
1 - Dupont - 3;8;14;11
2 - Duporc - 2;3;8;11
3 - Trobo - 1;2;5;8
我想使用SQL查询来检索属于伙伴2的所有联系人,例如。我如何爆炸"合作伙伴"列为了用SQL做到这一点?
SELECT * FROM contacts WHERE ... LIKE 2 ...??
答案 0 :(得分:3)
使用REGEXP
您可以使用正则表达式检查字符串中的给定数字。
SELECT * FROM contacts WHERE Partners REGEXP '[[:<:]]2[[:>:]]'
另一种方法是你可以在select查询中替换分号,然后在set
中使用findSELECT * FROM contacts WHERE FIND_IN_SET(2,REPLACE(Partners,";",","));
答案 1 :(得分:0)
你可以使用FIND_IN_SET函数......
SELECT * FROM table WHERE FIND_IN_SET(3, Partners);
OR
SELECT * FROM table
WHERE CONCAT(';', Partners, ';') LIKE '%,3,%'
我跳它很有用......