php - 展开列以执行 SQL 搜索查询

标签 php mysql sql

我想基于包含“合作伙伴”列的“联系人”表执行查询。我有这样的合作伙伴:

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 ...??

最佳答案

使用REGEXP

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

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

另一种方法是您可以在选择查询中替换分号,然后在集合中使用查找

SELECT * FROM contacts WHERE FIND_IN_SET(2,REPLACE(Partners,";",","));

关于php - 展开列以执行 SQL 搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47905755/

相关文章:

php 错误描述 : Incorrect string value: '\xF4t l'\xE9. ..' 插入

javascript - 如何永久隐藏表单并显示提交的表单

mysql - 需要有关多个数据库插入操作的建议

javascript - 从数据库中获取嵌套 JSON 的最佳方法是什么?

php - 使用php从while循环语句中的不同表中获取值

php - 带数组的 ActiveRecord where_in()

php - PHP pthreads计数事件线程吗?

mysql - 错误代码 : 1093. 您不能在 FROM 子句中指定目标表 't' 进行更新

mysql - 我可以将十个相似的 SQL 查询合并为一个吗?

php - 什么更消耗资源?每次存储或读取