mysql 如何查找逗号“,”分割的字符串

本文收录在个人博客
www.landedaima.com/forum.php?mod=vi...

问题描述
开发商品多属性筛选时并没有分出一个属性单独的表,多选的属性都放在同一个字段 arr:” 蓝色,红色,白色,天蓝色” 里面并用 “,” 进行分割。

开始我使用的是 like 的方法

select * from attrs where attr like '%蓝色%'

但是前台做筛选时,选中 “蓝色” 这个属性之后,天蓝色却也显示出来了。

后来发现 mysql 中有一个 find_in_set 函数可以解决这个问题

select * from attrs where attr FIND_IN_SET('蓝色' ,attr);

再次查询出来的数据中并没有了 “天蓝色” 这条数据了。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1
Junwind

个人建议都查出来,加缓存,用 PHP 去筛选所需要的数据

4年前 评论
懒得代码 (楼主) 4年前
Junwind (作者) 4年前