我有一个表名 company
Company | category_id
NEC | cg17,cg19,cg23
Huawei | cg55,cg17,cg25
我这样查询:
select * from company
where category_id RLIKE '^cg17,cg19'
结果:
Company | category_id
NEC | cg17,cg19,cg23
但是当我这样查询时:
select * from company
where category_id RLIKE '^cg17,cg23'
我没有得到任何行,但我想要公司“NEC”,因为 NEC 有 category_id "cg17,cg19,cg23"
如何解决这个问题?
最佳答案
一种方式,如果您的类别始终按顺序排列并且不包含超过 2 位数字的类别:
select * from company
where category_id LIKE 'cg17%cg23'
恕我直言,一种更好的方法,它将字段视为正确的 CSV 值:
select * from company
where FIND_IN_SET('cg17', category_id) > 0
and FIND_IN_SET('cg23', category_id) > 0
关于Mysql Rlike条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29159942/