首先我们建立一张带有逗号分隔的字符串。

CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCHAR(20) NOT NULL,pnum VARCHAR(50) NOT NULL);

然后插入带有逗号分隔的测试数据

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');

查找pnum字段中包含3或者9的记录

mysql> SELECT * FROM test WHERE find_in_set('3',pnum) OR find_in_set('9',pnum);

+----+-------+---------+

| id | pname | pnum |

+----+-------+---------+

| 3 | 产品3 | 3,4 |

| 4 | 产品4 | 1,7,8,9 |

+----+-------+---------+

2 rows in set (0.03 sec)

使用正则

mysql> SELECT * FROM test WHERE pnum REGEXP '(3|9)';

+----+-------+---------+

| id | pname | pnum |

+----+-------+---------+

| 3 | 产品3 | 3,4 |

| 4 | 产品4 | 1,7,8,9 |

| 5 | 产品5 | 33,4 |

+----+-------+---------+

3 rows in set (0.02 sec)

这样会产生多条记录,比如33也被查找出来了,不过MYSQL还可以使用正则,挺有意思的

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

mysql> SELECT find_in_set('e','h,e,l,l,o');

+------------------------------+

| find_in_set('e','h,e,l,l,o') |

+------------------------------+

| 2 |

+------------------------------+

1 row in set (0.00 sec)

还可以用来排序,如下;

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

+----+-------+---------+

| id | pname | pnum |

+----+-------+---------+

| 2 | 产品2 | 2,4,7 |

| 3 | 产品3 | 3,4 |

| 4 | 产品4 | 1,7,8,9 |

+----+-------+---------+

3 rows in set (0.03 sec)

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

mysql> SELECT * FROM TEST WHERE id in(4,2,3) ORDER BY find_in_set(id,'4,2,3');

+----+-------+---------+

| id | pname | pnum |

+----+-------+---------+

| 4 | 产品4 | 1,7,8,9 |

| 2 | 产品2 | 2,4,7 |

| 3 | 产品3 | 3,4 |

+----+-------+---------+

3 rows in set (0.03 sec)

mysql查询包含字符串的记录,MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法...相关推荐

  1. php调用mysql查询结果_php - 在php脚本中处理select查询结果集

    在php脚本中执行select查询命令,也是调用mysql_query()函数,但是和执行DML不同的是,执行SELECT 命令后,mysql_query()函数的返回值是一个资源的引用指针(结果集) ...

  2. mysql中利用sql语句修改字段名称,字段长度等操作(亲测)

    在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿.这些操作可以在phpmyadmin或者别的m ...

  3. php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素

    怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...

  4. MYSQL中的SELECT查询时进行运算

    SELECT在mysql中是查询表中的数据的作用,但也可以在查询的时候直接进行运算,然后返回查询后的结果 比如 1 SELECT user,math*(IFNULL(adven,0)) FROM us ...

  5. SQL server中的SELECT查询语句执行顺序

    各位大牛们好第一次写博客有点小激动!以后我会把自己的心得分享给大家,求各种评论 SQL server 中SELSECT查询语句的执行顺序如下: (8) SELECT   (9) DISTINCT (1 ...

  6. MFC中利用CFileDialog选择文件并读取文件所遇到的问题和解决方法

    在用MFC编写一个上位机时,需要实现选择和读取一个二进制文件,本来以为很简单的但是在实现过程中遇到很多问题,所幸都一一解决,这里做一下记录. 首先在实现文件选择,在界面上设置一个按钮,并在点击事件函数 ...

  7. mysql控制台导出查询结果_MySQL 命令行导出、导入Select 查询结果

    有的时候需要把在一张表中用 select 语句查询出来的结果保存到另一张结构相同的表中,可以有几种方法来实现: 方法一: 在命令行下使用一对SQL语句完成该操作: 导出查询结果:Select语句 in ...

  8. mysql 修改字段长度 合并语句_mysql中利用sql语句修改字段名称,字段长度等操作...

    1.修改字段的长度 语法: ALTER TABLE 表名 MODIFY COLUMN 字段名  数据类型(修改后的长度) 例子: 将字段的长度由10改为20 ALTER TABLE attence M ...

  9. stream对多个字段分组_Java8 stream 中利用 groupingBy 进行多字段分组

    1.利用stream对数据进行分组并求和 public static void main(String[] args) { List items = Arrays.asList("apple ...

最新文章

  1. 为了给你们讲清楚数据库中间件有哪些,我也是拼了!
  2. BaaS模式的开发思路
  3. linux网络设备驱动结构体,Linux网络设备驱动之设备驱动的注册与注销(二)
  4. L Machining Disc Rotors
  5. linux下mqm添加用户,Linux 下MQ的安装和配置亲测
  6. 1200兆路由器网速_如何选购路由器才能发挥宽带的网速?
  7. 如何使用Java读写系统属性?
  8. python编程出现:expected an indented block错误。
  9. 什么是IDE?新手用哪个IDE比较好?
  10. [转]海南楼市泡沫拯救中国经济~ 恍然大悟呀~
  11. 安捷伦 34401A串口通信
  12. c语言怎么加中文注释,谁能对我的C语言程序作出中文注释
  13. 南京标志设计-logo设计(品牌形象核心部分)
  14. 【pygame】之小球基础
  15. Node.js:knex.js数据库MySQL query builder
  16. SimpleDateFormat的坑
  17. 5.8 使用轮廓化描边命令制作心形艺术图标 [Illustrator CC教程]
  18. A Game of Thrones(34)
  19. 交互式多模型算法IMM——机动目标跟踪中的应用
  20. 如何用css弄个七彩,CSS实现文字七彩呼吸灯动画

热门文章

  1. java开发_mysql中获取数据库表描述_源码下载
  2. java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
  3. 8051单片机的中断发送
  4. MS SQL入门基础:删除数据库
  5. python3----练习题(弹幕跟随)
  6. openjudge7624:山区建小学
  7. AngularJS-compareDirective.js 验证指令
  8. bugscan泄露代码解密
  9. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-008-带参数的ADVICE
  10. 大数据_Flink_数据处理_流处理API_Transform(2)_滚动聚合算子_keyBy_sum_min_max_minBy_maxBy---Flink工作笔记0030