在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