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

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

3周前 评论
懒得代码 (楼主) 3周前
junwind (作者) 3周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!