我想在包含item1,2,3,4,5的不同可能组合中选择字段的值。放置项目的位置无关紧要,但每个字段必须包含每个项目。
id_num field1 field2 field3 field4 field5
1 item1 item2 item3 item4 item5 > true
2 item3 item3 item3 item4 item5 > false
3 item2 item1 item3 item4 item5 > true
4 item5 item4 item3 item2 item1 > true
5 item1 item1 item3 item4 item5 > false
6 item2 item2 item4 item4 item5 > false
我尝试使用常规查询SELECT * from tb_name where field1=item1 AND field2=item2 etc...
它必须非常消耗OR OR和OR,它必须效率不高。
谢谢
答案 0 :(得分:3)
您可以使用field
功能使您的查询比仅仅and
和or
一样简单:
SELECT *
FROM tb_name
WHERE FIELD ('item1', field1, field2, field3, field4, field5) > 0 AND
FIELD ('item2', field1, field2, field3, field4, field5) > 0 AND
FIELD ('item3', field1, field2, field3, field4, field5) > 0 AND
FIELD ('item4', field1, field2, field3, field4, field5) > 0 AND
FIELD ('item5', field1, field2, field3, field4, field5) > 0
答案 1 :(得分:2)
尝试使用concat和
select concat(field1,field2,field3,field4,field5) as checkstring,item_id from table where
concat(field1,field2,field3,field4,field5) like '%item1%'
and concat(field1,field2,field3,field4,field5) like '%item2%'
and concat(field1,field2,field3,field4,field5) like '%item3%'
and concat(field1,field2,field3,field4,field5) like '%item4%'
and concat(field1,field2,field3,field4,field5) like '%item5%'
更新