Mysql快速查找用逗号分割的列中含有某个字符的行:FIND_IN_SET

看标题比较绕口,但是我举一个例子你就清楚了

Mysql快速查找用逗号分割的列中含有某个字符的行:FIND_IN_SET_第1张图片

这是一个查询:我现在想要的是attr_val中含有黑色属性的行:

你用模糊匹配可以,用REGEXP也行,下面介绍一种mysql自带的函数:FIND_IN_SET。它的用法是:

FIND_IN_SET(search_value, string_list)

其中:search_value是要查找的值,string_list是逗号分隔的字符串列表。该函数返回找到的值在列表中的位置,如果找不到则返回0。

那我们就可以些这样一个sql来过滤出我们要查的所有行:


SELECT * FROM goods_attribute
WHERE FIND_IN_SET('黑色', attr_val) > 0;

Mysql快速查找用逗号分割的列中含有某个字符的行:FIND_IN_SET_第2张图片

怎么样,会了吗?

你可能感兴趣的:(mysql,数据库)