2013-10-29 78 views
1

如果在mysql(5.0.96)中不支持FIND_IN_SET,那麼替代函數是什麼。出於某種原因,我無法升級我的mysql版本。如果FIND_IN_SET不支持,什麼是替代函數?

manufacturer_id | category_id 
    15    63 
    16    63,64 
    17    163,64 

查詢

$category = '63';  

mysql_query("SELECT * FROM `oc_manufacturer` WHERE find_in_set ('" . (int)$category ."', category_id) "); 

結果將返回:

15 
16 

此查詢工作,但如何得到相同的結果,而無需使用find_in_set

+1

最好的方法(即使'find_in_set'可用)總是要正確設計數據庫。第一步總是刪除多值字段 –

回答

2

嘗試這個

mysql_query("SELECT * FROM `oc_manufacturer` WHERE 
CONCAT(',', category_id, ',') LIKE '%,".(int)$category.",%'"); 
+0

其工作,非常感謝 – rusly

0

爲什麼不使用IN。

mysql_query("SELECT * FROM `oc_manufacturer` 
where ('" . (int)$category ."') in (category_id) "); 
相關問題