在MySQL數據庫中,圖庫中的圖像可以分配到一個產品範圍,以便可以過濾圖庫以僅顯示來自特定範圍的圖像。帶有多個選項的字段的MySQL數據庫查詢
目前主要圖像庫中包含: -
$query_Cur_range_img = "SELECT * FROM `images` WHERE active = 'y' AND gallery = '1' LIMIT ".$showfrom.", ".$max;
如果畫廊「1」,那麼圖像將被顯示在主油道(ALL)。
某些圖像也被添加到產品的範圍從一個單獨的數據庫列「product_range_id」和的產品範圍的ID內的是1,2或3。
在用於過濾庫包含文件中,我們有: -
$query_Cur_range_img = "SELECT * FROM `images` WHERE active = 'y' AND gallery = '1' AND product_range_id = '1' LIMIT ".$showfrom.", ".$max;
但是,這隻顯示僅分配給product_range_id 1的圖像。一些圖像會顯示在產品範圍2和3中,例如1或2個。我想我們需要包含一個OR語句?任何幫助編寫這個查詢將不勝感激,所以如上所述,我認爲我們需要AND product_range_id ='1'(或2或3)例如?
在此先感謝。
UPDATE
我試過以下,但所有這一切被憤怒ID過濾圖像時做1是隻分配給範圍ID 1(不包括分配給量程識別的4張圖片顯示的圖像和2例如)。
$query_Cur_range_img = "SELECT * FROM `images` WHERE active = 'y' AND gallery = '1' AND (product_range_id = '1' OR product_range_id = '1' AND product_range_id = '2' OR product_range_id = '1' AND product_range_id = '3') LIMIT ".$showfrom.", ".$max;
更新 - 13/01/2012
現在已經得到解決 - 修正以下(感謝埃倫)
$query_Cur_range_img = "SELECT * FROM images WHERE active = 'y' AND gallery = 1 AND (FIND_IN_SET('1', product_range_id) OR product_range_id = '1') LIMIT ".$showfrom.", ".$max;
而且
$query_Cur_range_img = "SELECT * FROM images WHERE active = 'y' AND gallery = 1 AND (FIND_IN_SET('2', product_range_id) OR product_range_id = '2') LIMIT ".$showfrom.", ".$max;
而且
$query_Cur_range_img = "SELECT * FROM images WHERE active = 'y' AND gallery = 1 AND (FIND_IN_SET('3', product_range_id) OR product_range_id = '3') LIMIT ".$showfrom.", ".$max;
根據需要...
什麼是表結構?給出的選項應該可以工作,但似乎表結構可能與預期不同。 – Brian 2012-01-11 13:55:04