mysql的查询时,经常可能会出现条件传参时,条件是一个由多个参数组合而成的字符串,比如,usr_id=‘id1,id2,id3,id4’,此类参数在使用时,还要使用字符串拆分,变成数组,再使用in函数,完成查询。
使用locate函数,就可以不拆分了,具体locate的详细用法可以百度下,此处只是说下简单的用法。
locate(str,‘str1str2’),str会去匹配str1str2中是否可以匹配上,所以为了防止出现有些脏数据,刚好可以匹配上我们的字符,可以使用一个对两个参数都使用特殊处理下,比如使用concat(‘,’,usr_id,‘,’);给usr_id前后添加逗号作为标识符号,也可以选择其他符号,第二个参数也同样处理下,这样匹配出的效果会比较准确
select * from usr_tb where locate( concat(‘,’,usr_id,‘,’), concat(‘,’,‘id1,id2,id3,id4’,‘,’) )
具体的性能会不会比拆分后使用in函数好,不清楚,哈哈(有空再更新,写具体点)

更多推荐

mysql篇-mysql的locate函数