博客
关于我
MySql 查询以逗号分隔的字符串的方法(正则)
阅读量:793 次
发布时间:2023-02-10

本文共 556 字,大约阅读时间需要 1 分钟。

数据库表中某个字段保存的值为“01,07,08”,需要查询下表中对应的名称。以下是一些可能的解决方法:

  • 使用find_in_set()函数

    这个函数可以检查字符串中是否存在特定的子字符串。以下是查询包含“01”、“07”或“08”的记录的SQL语句:

    SELECT * FROM test WHERE find_in_set('01', itemname) OR find_in_set('07', itemname) OR find_in_set('08', itemname);
  • 使用正则表达式

    正则表达式可以更简洁地匹配多个值。以下是使用正则表达式的SQL语句:

    SELECT * FROM test WHERE itemname REGEXP '(01|07|08)';
  • 使用LIKEIN

    如果数据库支持,可以尝试将字段值转换为数组,并使用IN子句进行匹配。例如:

    SELECT * FROM test WHERE itemname LIKE '%01,07,08%' OR itemname LIKE '%01,08%';

    不过这种方法可能需要多次重复,且不如正则表达式灵活。

  • 总结

    在支持正则表达式的数据库环境下,使用正则表达式是最优的选择,因为它简洁且灵活,只需修改表达式即可扩展更多值。

    转载地址:http://zfbfk.baihongyu.com/

    你可能感兴趣的文章
    Mysql中常用函数的使用示例
    查看>>
    MySql中怎样使用case-when实现判断查询结果返回
    查看>>
    Mysql中怎样使用update更新某列的数据减去指定值
    查看>>
    Mysql中怎样设置指定ip远程访问连接
    查看>>
    mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
    查看>>
    Mysql中文乱码问题完美解决方案
    查看>>
    mysql中的 +号 和 CONCAT(str1,str2,...)
    查看>>
    Mysql中的 IFNULL 函数的详解
    查看>>
    mysql中的collate关键字是什么意思?
    查看>>
    MySql中的concat()相关函数
    查看>>
    mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
    查看>>
    MySQL中的count函数
    查看>>
    MySQL中的DB、DBMS、SQL
    查看>>
    MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
    查看>>
    MySQL中的GROUP_CONCAT()函数详解与实战应用
    查看>>
    MySQL中的IO问题分析与优化
    查看>>
    MySQL中的ON DUPLICATE KEY UPDATE详解与应用
    查看>>
    mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
    查看>>
    mysql中的undo log、redo log 、binlog大致概要
    查看>>
    Mysql中的using
    查看>>