Select 具有不同放置可能组合的字段值
Select field value with different placed possible combinations
我想 select 字段的值以包含项目 1、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 AND OR 肯定很耗电,效率肯定不高
谢谢
您可以使用 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
尝试使用 concat 和 like
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%'
已更新。
我想 select 字段的值以包含项目 1、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 AND OR 肯定很耗电,效率肯定不高
谢谢
您可以使用 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
尝试使用 concat 和 like
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%'
已更新。