如果commaSeparatedListInOneColumn
包含類似1,2,3,45
價值和你有一樣的字符串和12,2,4,5
如果要檢查所有的12,2,4,5
IDS存在於commaSeparatedListInOneColumn
與否。
然後你可以在find_in_set()的幫助下做到這一點。
就這樣
$ids='12,2,4,5';
$filterKeys = explode(',',$ids);
$searchQuery='';
foreach ($filterKeys as $word) {
$word = trim($word);
if ($word) {
$searchQuery = $searchQuery . "find_in_set('$word', trim(`commaSeparatedListInOneColumn`)) > 0 or ";
}
}
$searchQuery = chop($searchQuery, ' or ');
$finalQuery="SELECT * FROM target_table WHERE $searchQuery";
這裏$finalQuery
包含查詢它看起來像這樣
SELECT * FROM target_table
WHERE find_in_set('12', trim(`commaSeparatedListInOneColumn`)) > 0 or
find_in_set('2', trim(`commaSeparatedListInOneColumn`)) > 0 or
find_in_set('4', trim(`commaSeparatedListInOneColumn`)) > 0 or
find_in_set('5', trim(`commaSeparatedListInOneColumn`)) > 0
我的東西它會幫助你的。
問題是? –
現在你明白了爲什麼在一列中將逗號分隔的列表中的數據存儲**是一個可怕的想法**。重構你的數據庫設計 – RiggsFolly
所以這是我正在使用的框架的設計。條件被查詢的對象struckture。所以它不是更改數據庫結構的選項。 –