侧边栏壁纸
博主头像
gale-blog博主等级

少年一贯快马扬帆,道阻且长不转弯,要盛大,要绚烂,要哗然,要用理想的泰坦尼克号去撞现实冰川,要当烧赤壁的风,而非借箭草船,要为了一片海,就肯翻万山

  • 累计撰写 39 篇文章
  • 累计创建 5 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

Mysql查询表中字段信息

二月在这里
2024-06-17 / 0 评论 / 0 点赞 / 22 阅读 / 2713 字

mysql查询以逗号分割的字符串,精确查找

创建测试数据库

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test`  (
  `id` bigint(20) NOT NULL COMMENT '主键id',
  `ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '记录主键',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

插入测试数据

INSERT INTO `test` VALUES (1, '0,1,2,3');
INSERT INTO `test` VALUES (2, '0,2,4,5,6');
INSERT INTO `test` VALUES (3, '11,33,6,22');
INSERT INTO `test` VALUES (4, '0,1,2,3,4,5,6,7,8,9,11');
INSERT INTO `test` VALUES (5, '2,3,4,5,6,7');
INSERT INTO `test` VALUES (6, '1,22,66,16,36');
INSERT INTO `test` VALUES (7, '46,12,32,18');
INSERT INTO `test` VALUES (8, '77,76,75,74');

SET FOREIGN_KEY_CHECKS = 1;

使用mysql的正则表达式

我们在SQL中用WHERE子句搜索匹配的条件时,常用到LIKE关键字,今天来简单介绍另一种更加强大的关键字: REGEXP, 正则匹配

select id,idsfrom `test` where ids REGEXP '.*2';

使用 FIND_IN_SET 函数

使用 FIND_IN_SET 函数能够准确查出 ancestors字段中含有 2 这项有哪些

select id,idsfrom `test` where find_in_set('2',ids) GROUP BY id;

使用 mysql 的LOCATE 函数

这个函数,会把你查询出含有查找 “ 2 ” 的数据

select id,ids from `test` where LOCATE ('2',ids);

0

评论区