2016-11-30 38 views
-3

我在一個mysql表中存儲逗號分隔的id,如2,7,6。在mysql表中選擇逗號分隔值

我想編寫一個查詢來選擇與來自get值的ID匹配的行。

+6

錯誤的錯誤....它很複雜,緩慢和低效;如果可以的話,規範你的表結構,否則FIND_IN_SET()是最好的,你可以希望 –

+0

好祝你好運 –

+0

你最好的解決方案是:**不要**存儲逗號分隔的ID。聽Mark,用外鍵標準化表格。如果您有n-m關係,請使用數據透視表。但**不要**繼續做你現在正在做的事情,這是錯誤的 –

回答

1

將以逗號分隔的值存儲在數據庫中是非常糟糕的。使用另一個表作爲外鍵這個ID的..

現在,如果你已經用逗號分隔值做你的數據庫,然後使用以下步驟:

假設你存儲像這樣的表:

id  extraid 
1  2,4,5 
2  3,5 
3  4,7,5,3 

然後:

<?php 
    $select = "SELECT * FROM tbl_name WHERE id = 1"; 
    $query = mysql_query($select); 
    while($row = mysql_fetch_array($query)){ 
     $extraid=explode(',', $row['extraid']); 
     foreach($extraid as $id) { 
       echo $id; // output as single id. 
     } 
    } 

?> 

現在後寫入查詢比較ID ...

希望這可能是有用的