〇×〇站

个人博客,佛系更新

MYSQL中的FIND_IN_SET()函数的使用

  • Pluto
  • 2023-08-01 10:58:44
  • 9
  • 举个例子,假如我现在有一张表:

    CREATE TABLE `course` (
      `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增id',
      `courseName` VARCHAR (255) NOT NULL COMMENT '课程名称',
      `subjectIds` VARCHAR (255) NOT NULL COMMENT '科目ids',
      PRIMARY KEY (`id`)
    ) COMMENT = '课程表';
    INSERT INTO `course` (`courseName`, `subjectIds`) VALUES ('语文', '1,2,3');
    INSERT INTO `course` (`courseName`, `subjectIds`) VALUES ('数学', '11,12,13');
    

    图1 现在如果我要查询subjectIds包含2的课程,如果用IN()去实现:

    SELECT * FROM course WHERE subjectIds LIKE '%2%';
    

    图2 显然查出来的数据是不准确的,不仅查到了subjectIds包含2的课程,还查到了subjectIds包含12的课程。这个时候再用FIND_IN_SET()试一下:

    SELECT * FROM course WHERE FIND_IN_SET('2', subjectIds);
    

    图3 完满的得到了想要的数据!

    分类:
  • 代码
  • 标签:
  • mysql