中国建设银行个人网上银行网站,荆州企业网站建设,网站建设用自助建站系统好不好,佛山做网站业务场景#xff1a;
在使用MySQL的时候#xff0c;可能的某个字段存储的是一个英文逗号分割的字符串#xff08;这里我们不讨论表设计的合理性#xff09;#xff0c;如图所示#xff1a; 我们在查询的时候需要匹配逗号分割中的某个字符串#xff0c;该怎么查询呢
在使用MySQL的时候可能的某个字段存储的是一个英文逗号分割的字符串这里我们不讨论表设计的合理性如图所示 我们在查询的时候需要匹配逗号分割中的某个字符串该怎么查询呢
find_in_set函数
函数结构find_in_set(str,strlist)
str要查询的字符串。strlist 字段名示例中的 business_line_reviewer 字段。
为了方便理解我们可以认为strlist是由多个str且以英文逗号分割组成的函数返回的是str在strlist中的位置返回值的范围在 1 到 N 之间需要注意的是strlist不能以英文逗号开头。
find_in_set函数用法演示
select id,business_line_reviewer from org_performance_approver where find_in_set(zt19379, business_line_reviewer) 0查询结果 完美解决了在查询的时候需要匹配逗号分割中的某个字符串的场景。
索引使用情况
explain select business_line_reviewer from org_performance_approver where find_in_set(zt19379, business_line_reviewer) 0;MySQL版本
select version();总结 在查阅资料寻求解决方案的时候看到部分资料说 find_in_set 函数不支持英文逗号分割 我使用的 8.0.27 版本是支持的可能是老版本不支持这个待求证也有资料 find_in_set 函数说不支持索引同样我在使用的时候看了执行计划也是支持索引的可能也是老版本不支持。
如有不正确的地方请各位指出纠正。