mysql数据表中包含两个字段,字段类型 为字符串,其中一个字段可能包含另一个字段的内容,如下所示
a                              b
130000                   130000,130001
120001                    110000
在上述表格中第一行,字段b包含字段a的内容130000;而第二行,字段b不包含字a的内容。现在需要把 像第一行这样的数据搜索出来,请问有何好的方法呢?

解决方案 »

  1.   

    select * from mysql数据表 where find_in_set(a,b)
      

  2.   

    root@localhost : test 01:14:58>select * from cs;
    +-------+----------+
    | a     | b        |
    +-------+----------+
    | 123   | 123,234  |
    | 11    | 12,13,32 |
    | 54,43 | 54       |
    +-------+----------+
    3 rows in set (0.00 sec)root@localhost : test 01:15:52>select * from cs where find_in_set(a,b);
    +------+---------+
    | a    | b       |
    +------+---------+
    | 123  | 123,234 |
    +------+---------+
    1 row in set (0.00 sec)
      

  3.   

    非常感谢~如果表格数据是这样的
    | a      |    b    |
    |3301    |  {"330000":[330100 330102],"320000":[320101 320201]} |
    |3201    |  {"330000":[330100 330102],"320000":[320101 320201]} |把b字段中包含a字段的数据搜索出来,例如 b字段中含有子串“330100”,则认为字段b包含字段a 这种数据 该怎么处理呢?
      

  4.   

    如果a,b字段数据是这样的形式
    |a          |b      |
    |3300    | {"330000":[330102,330203],"250000":[250201,250301]}|
    |3201    |{"320000":[320102,320303]}|在第一行中,b字段包含字符串为  330000,330102,3303203,250000,250201,250301;
    a字段字符串为3300,a中的3300属于b中330000的子串,因此,我们认为b字段包含a字段。第二行同理,得出b字段包含a字段请问 ,满足  如上所述的字段包含关系的 数据该怎么提取呢?