代码之家  ›  专栏  ›  技术社区  ›  ZA.

如何从包含组合数据的列中获取结果?

  •  0
  • ZA.  · 技术社区  · 17 年前

    数据:

    id  bb
    1  14,35
    2  5,11,12,125,36
    3  3,23,45,15,1
    4  651
    5  5,1,6
    6  1,7
    

    例如,我无法获取值为“1”的id。因此id(3,5,6)应该返回,但其他带有“14”或“11”的id则不能返回。

    数据库:Mysql

    4 回复  |  直到 16 年前
        1
  •  2
  •   Emil H    17 年前

    这不是最有效的解决方案,但它可能会为您提供您想要的:

    select id from MyTable where bb like '%,1,%' union 
    
    select id from MyTable where bb like '1,%' union 
    
    select id from MyTable where bb like '%,1' union 
    
    select id from MyTable where bb like '1'
    

    干杯

        2
  •  1
  •   ZA.    17 年前
    select * from test where find_in_set('1',bbb)
    

    或

    select * from test where bbb REGEXP '(^|,)1(,|$)'
    
        3
  •  0
  •   David Walker    17 年前

    我错过什么了吗?

    SELECT *
    FROM   MyTable
    WHERE  (id = 3) or (id = 5) or (id = 6)
    
        4
  •  -1
  •   KuldipMCA    17 年前

    你可以这样做