分解列以执行SQL搜索查询

时间:2017-12-20 12:08:33

标签: php mysql sql

我想基于"联系人"执行查询。表格列#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 ...??

2 个答案:

答案 0 :(得分:3)

使用REGEXP

您可以使用正则表达式检查字符串中的给定数字。

SELECT * FROM contacts WHERE Partners REGEXP '[[:<:]]2[[:>:]]'

另一种方法是你可以在select查询中替换分号,然后在set

中使用find
SELECT * 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,%'

我跳它很有用......