百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql find_in_set或REGEXP查询字段中指定字符内容
分享文章到:

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

发布时间:01/15 来源: 浏览: 关键词:
在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′);
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有6人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板