mysql 如何查找逗号“,”分割的字符串
问题描述
开发商品多属性筛选时并没有分出一个属性单独的表,多选的属性都放在同一个字段 arr:”蓝色,红色,白色,天蓝色”里面并用“,”进行分割。
开始我使用的是 like 的方法
select * from attrs where attr like '%蓝色%'
但是前台做筛选时,选中“蓝色”这个属性之后,天蓝色却也显示出来了。
后来发现mysql 中有一个 find_in_set 函数可以解决这个问题
select * from attrs where attr FIND_IN_SET('蓝色' ,attr);
再次查询出来的数据中并没有了“天蓝色” 这条数据了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
个人建议都查出来,加缓存,用PHP去筛选所需要的数据