mysql查询时,在一张表中有一个字段scode(表示商品编号),有一个字符串存储了多个商品编号,如“0001ME,0002BL”是一个字符串,假如叫str,打算使用in的方式,把str作为in的条件,如下where scode in “0001ME,0002BL”,操作失败。
然后,查阅mysql文档,找到了instr函数。
以下是mysql怎么用字符串作为查询条件的具体实践过程。
1、最初,一直在将字符串str转换为类似的in参数:
复制代码 代码示例:
select * from stocks_orderlist s where s.scode in ("0001me","0002bl") limit 10;
select convert(concat("'",replace("0001me,0002bl",",","','"),"'"),char);
select * from stocks_orderlist s where s.scode in (convert(concat(""",replace("0001me,0002bl",",","",""),"""),char)) limit 10;
虽然把str转成了in所要的东西,但是后来想想,in的参数是一个列表集合,及时把str转换成了所谓的in参数的形式,但是肯定还是一个字符串。
最终还是选择了instr函数,如下:
2、instr函数,找出substr在str中第一次出现问题
例句:
复制代码 代码示例:
select instr("0001me,0002bl","0003me");
select instr("0001me,0002bl","0001me");
select instr("0001me,0002bl","0002bl");