2012-09-27 219 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);