Mysql Rlike条件

Mysql Rlike condition

我有一个table名字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