开发中遇到的BUG
我开发中项目的需求客户手动输入的单号,因为需要填写多个单号,我们协商之后要求将多个单号用逗号隔开,可能是中文逗号也可能是英文逗号。
在填写完成之后需要根据这个单号模糊搜索,此时小伙伴们是不是想到用like就可以了,俺也是这么想的。但是并不如意。比如数据库里面保存的是【DD-20240921-1,DD-20240921-2】和【DD-20240921-11,DD-20240921-12】,如果查询like % DD-20240921-1 %,是不是将两条数据都会查出来。这就是有问题的。
解决方案
但是我测试后发现不支持中文逗号隔开的数据,所以使用REPLACE()方法,将中文逗号全部替换成英文逗号,完美解决
FIND_IN_SET(' DD-20240926-1', REPLACE(order_no, ',', ',') )