MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
su2018
V2EX  ›  MySQL

mysql 中如何查询某列字符串中包含查询的部分字符串

  •  
  •   su2018 · May 15, 2020 · 4898 views
    This topic created in 2213 days ago, the information mentioned may be changed or developed.
    某列中的字符串按逗号(,)分隔. 如 值 1:aa, bb, cc, 值 2: bb,cc, 值 3: dd,hh, 值 4: jj
    查询 bb, dd 时如何把值 1,值 2,值 3 都查询出来
    Supplement 1  ·  May 15, 2020
    我之前的做法是 先把 bb,cc 转为数组, 然后循环拼凑, 如 (0 or FIND_IN_SET('bb',字段) or FIND_IN_SET('cc',字段))
    但是还是觉得有点繁琐
    13 replies    2020-05-18 09:37:32 +08:00
    U7Q5tLAex2FI0o0g
        1
    U7Q5tLAex2FI0o0g  
       May 15, 2020
    FIND_IN_SET
    wangyanrui
        2
    wangyanrui  
       May 15, 2020
    是我太菜了吗,不是 LIKE '%bb%' 嘛 0.0
    opengps
        3
    opengps  
       May 15, 2020 via Android
    @wangyanrui 换成字符串截取判断索引值效果更佳
    YangXian
        4
    YangXian  
       May 15, 2020
    find_in_set 就行了
    U7Q5tLAex2FI0o0g
        5
    U7Q5tLAex2FI0o0g  
       May 15, 2020
    @wangyanrui #2 值 5: aa,bbb,cc 也会被你查出来,但不对
    asAnotherJack
        6
    asAnotherJack  
       May 15, 2020
    @littleylv #1 学到了,另外 FIND_IN_SET 除了处理逗号分隔,有办法处理其他分隔符吗,比如用分号分隔的有什么好的办法吗
    U7Q5tLAex2FI0o0g
        7
    U7Q5tLAex2FI0o0g  
       May 15, 2020   ❤️ 1
    @asAnotherJack #6 The second parameter haystack is a list of comma-separated strings that to be searched.
    只能处理逗号,分号的话,可以考虑 REPLACE 替换成逗号再 FIND_IN_SET
    FIND_IN_SET('bb', REPLACE('aa;bb;cc', ';', ',') )
    dongisking
        8
    dongisking  
       May 15, 2020
    FIND_IN_SET,bb or hh
    asAnotherJack
        9
    asAnotherJack  
       May 15, 2020
    @littleylv #7 多谢
    su2018
        10
    su2018  
    OP
       May 15, 2020
    @littleylv @dongisking 你们的意思是附言 1 那样吧
    dongisking
        11
    dongisking  
       May 15, 2020
    @su2018
    wangyanrui
        12
    wangyanrui  
       May 16, 2020
    @littleylv 可以存 ,aa,bb,cc, 这种数据,然后 LIKE '%,bb,%'; 手动 doge
    thinkmore
        13
    thinkmore  
       May 18, 2020
    如果在 mongodb 中这种查询就非常 easy,
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   995 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 18:53 · PVG 02:53 · LAX 11:53 · JFK 14:53
    ♥ Do have faith in what you're doing.