2012-09-27 173 views
4

Table_OneMySQL查询获取匹配记录

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标准化为单独的关系表 –

回答

2

而不是使用LIKE使用FIND_IN_SET功能,试试这个:

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