博客
关于我
MySql 查询以逗号分隔的字符串的方法(正则)
阅读量:791 次
发布时间: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/

    你可能感兴趣的文章
    MQTT 通信协议详解与应用场景全解析
    查看>>
    MQTT介绍及与其他协议的比较
    查看>>
    MQTT共享订阅:实现高效的消息通信
    查看>>
    MQTT协议知识梳理,看完你就懂了!
    查看>>
    MQTT工作笔记0005---CONNECT控制报文2
    查看>>
    MQTT工作笔记0006---CONNECT控制报文3
    查看>>
    MQTT工作笔记0007---剩余长度
    查看>>
    MQTT工作笔记0008---服务质量
    查看>>
    MQTT工作笔记0009---订阅主题和订阅确认
    查看>>
    MQTT工作笔记0010---订阅主题和订阅确认2
    查看>>
    Mqtt搭建代理服务器进行通信-浅析
    查看>>
    MQTT(1):MQTT协议介绍
    查看>>
    Mr Cao 的提问
    查看>>
    MS COCO数据集介绍
    查看>>
    MS Edge浏览器“STATUS_INVALID_IMAGE_HASH“兼容性问题
    查看>>
    Ms Sql 2000 & Ms Sql 2005 & Ms Sql 2008更改 tempdb 数据库的物理位置
    查看>>
    ms sql server 2008 sp2更新异常
    查看>>
    MS SQL查询库、表、列数据结构信息汇总
    查看>>
    MS UC 2013-0-Prepare Tool
    查看>>
    MSBuild 教程(2)
    查看>>