教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql find_in_set或REGEXP查询字段中指定字符内容

mysql find_in_set或REGEXP查询字段中指定字符内容

发布时间:2023-05-02   编辑:jiaochengji.com
教程集为您提供mysql find,in,set或REGEXP查询字段中指定字符内容等资源,欢迎您收藏本站,我们将为您提供最新的mysql find,in,set或REGEXP查询字段中指定字符内容资源
在mysql中如果我的数据存储是以(‘产品2′,’2,4,7′)这种格式的我们如果使用in可能有问题用like也不行,唯独使用find_in_set才比较精确了。


在使用织梦DEDECMS时,开启了织梦的主栏目、副栏目功能。而副栏目字段在mysql数据库中typeid2是以逗号,分隔栏目id组成字符串。需查询副栏目文章时,心情天空就需要下面的两个方法解决。

测试mysql 数据表 其中一个模型数据

 代码如下 复制代码

INSERT INTO test(pname,pnum) VALUES(‘产品1′,’1,2,4′);
INSERT INTO test(pname,pnum) VALUES(‘产品2′,’2,4,7′);
INSERT INTO test(pname,pnum) VALUES(‘产品3′,’3,4′);
INSERT INTO test(pname,pnum) VALUES(‘产品4′,’1,7,8,9′);
INSERT INTO test(pname,pnum) VALUES(‘产品5′,’33,4′);

方法1、

 代码如下 复制代码

SELECT * FROM test WHERE find_in_set(’3′,pnum) OR find_in_set(’9′,pnum);

方法2、

 代码如下 复制代码

SELECT * FROM test WHERE pnum REGEXP ‘(3|9)’;

—————————————————-

PASS:记录

find_in_set()函数返回的所在的位置,如果不存在就返回0

 代码如下 复制代码
SELECT find_in_set(‘e’,'h,e,l,l,o’);

用in的效果不是很好

 代码如下 复制代码

SELECT * FROM TEST WHERE id in(4,2,3);

如果想要按照ID为4,2,3这样排序呢?

 代码如下 复制代码
SELECT * FROM TEST WHERE id in(4,2,3) ORDER BY find_in_set(id,’4,2,3′);

您可能感兴趣的文章:
mysql字段中使用逗号分隔符
mysql经典sql语句(1)
mysql模糊查询举例及%的用法要点
深入解析MySQL的正则表达式查询匹配
mysql正则匹配模糊查询的例子
mysql 按指定字段长度排序的示例代码
mysql常用字符串函数的用法
mysql 正则匹配字符串的例子分享
mysql 实现按 where in () 中的顺序排序,用find_in_set() 函数
Mysql字符集设置详解

[关闭]
~ ~