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

在使用织梦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′);
时间: 2024-10-26 11:12:07

mysql find_in_set或REGEXP查询字段中指定字符内容的相关文章

vb6 sql instr-vb6环境下,无法使用instr、charindex查询数据库指定字段中特定字符的位置。

问题描述 vb6环境下,无法使用instr.charindex查询数据库指定字段中特定字符的位置. 创建视图,需要查询数据库指定字段特定字符,代码以下: quetn = "create view que_ta AS select max(que_info.test_id) as test_id,sum(case when instr(1, que_category.cate_name, '选择题')>0 then 1 end) as 选择题," & _ "sum

MySQL查询字符串中包含字符的记录

REGEXP 例1.查询字段中包含非英文的数据  代码如下 复制代码 SELECT * FROM `m_user` WHERE `emp_no` REGEXP '[^ -~]' =1 列2.这样能把所有不含英文的都搞出来  代码如下 复制代码 SELECT * FROM table WHERE name NOT REGEXP '[a-zA-Z0-9]+' 当然除了regexp之外还可以使用FIND_IN_SET,like来操作 FIND_IN_SET mysql中如何使用FIND_IN_SET(

String类型存到mysql类型为text的字段中怎么出现了乱码?

问题描述 String类型存到mysql类型为text的字段中怎么出现了乱码? 一个String类型的存到mysql类型为text的字段中出现了乱码,需要怎么改呢? 解决方案 db-url后面加?useUnicode=true&characterEncoding=GBK 数据库的基字符集改成utf8 表中字段字符集改为utf8 解决方案二: 可能是你的编码有问题... 意思就是你的mysql的默认编码与输入的string时的编码不同吧.... 解决方案三: 参考此文http://blog.csd

vbs:把一段文字中指定字符颜色变成红色的正则_正则表达式

vbs:把一段文字中指定字符颜色变成红色的正则   function c(Tstr,Word)  Dim re  Set re = new RegExp  re.IgnoreCase =True  re.Global=True  re.pattern = "("&Word&")"  c=re.replace(Tstr,"<font style='color:red;'>$1</font>")  End fu

vbs:把一段文字中指定字符颜色变成红色的正则

vbs:把一段文字中指定字符颜色变成红色的正则 function c(Tstr,Word)  Dim re  Set re = new RegExp  re.IgnoreCase =True  re.Global=True  re.pattern = "("&Word&")"  c=re.replace(Tstr,"<font style='color:red;'>$1</font>")  End func

Word怎么查询Word中某字符的个数?

  有时候我们在用Word的时候会有一些小问题出现,或是自己想要实现的功能,比如查询数字的问题,问题:怎么查询Word中某字符的个数?比如我在一篇Word文档中查询中国两个字,如何查询中国两个字在这篇文档中出现的次数.当然不能通过查找替换一个个数来解决问题哦? Word教程 解答:我要告诉你一个最简单方法,就是使用Word的"查找/替换",但肯定不是你想像的那样,应该是出乎你的意料!在Word中按快捷键Ctrl+H,打开"替换"对话框,在"查找内容&quo

字符串替换-java如何将字符串的所有括号中指定字符替换掉?(正则表达式或者其它方法)

问题描述 java如何将字符串的所有括号中指定字符替换掉?(正则表达式或者其它方法) 要处理字符串 Medical Care ( Costs Inverse ## agonism ( Costs Inverse ## agonism ) ) Costs ( Inverse ## agonism ) at beta_1 ##adrenergic receptors 替换操作:将字符串中 所有括号 内的 ##替换成 @ 处理结果: Medical Care ( Costs Inverse @ ago

python统计字符串中指定字符出现次数的方法_python

本文实例讲述了python统计字符串中指定字符出现次数的方法.分享给大家供大家参考.具体如下: python统计字符串中指定字符出现的次数,例如想统计字符串中空格的数量 s = "Count, the number of spaces." print s.count(" ") x = "I like to program in Python" print x.count("i") PS:本站还提供了一个关于字符统计的工具,感兴

mysql查询字段中带空格的值的sql语句

  (1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace  代码如下     update `news` set `content`=replace(`content`,' ','');//清除news表中content字段中的空格 这样就可以直接用like查询了. (2)mysql trim 函数 语法:trim([{BOTH | LEADING | TRAILING} [r