使用MySQL查询以获取匹配的记录。

4

表格一

id name groupid
1  AAA   5,6
2  BBB   5,7
3  CCC   15

我正在尝试制作一个类似的查询:

select * from Table_One 
where Table_One.groupid like '%".$objectData[groupid]."%' 

如果$objectData[groupid]的值为5,则结果应该是

1  AAA   5,6
2  BBB   5,7

同样地,如果$objectData[groupid]的值为6,则结果应为:
1  AAA   5,6

如果$objectData[groupid]的值为7,则结果应该是:

2  BBB   5,7

1
要么使用 FIND_IN_SET 替换 LIKE,要么重构你的数据库并将多个 group_ids 规范化为一个单独的关系表。 - Mark Baker
1个回答

2

使用FIND_IN_SET函数替代LIKE,尝试以下方法:

SELECT * 
FROM Table_One 
WHERE FIND_IN_SET(".$objectData[groupid].", Table_One.groupid); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接