id  typeid area
1     1    浦东,卢湾,闵行,黄浦
2     2    浦东
3     1    浦东,闵行,黄浦
4     1    卢湾,黄浦
5     1    徐汇请看上表。有一字段area的内容有几个地区。如:浦东,卢湾,闵行,黄浦
我要查询数据库。这个字段里有这四个区其中一个区或多个的记录怎么写SQL我用正则实现可是结果不对,
select * from area where typeid=1 and area regexp replace("浦东,卢湾,闵行,黄浦",",","|")

解决方案 »

  1.   

    select * from area where typeid=1 and ','+area+',' like '%,浦东,%'
      

  2.   

    SELECT * FROM area WHERE typeid=1 AND FIND_IN_SET('浦东',area) 
    這樣試下
      

  3.   

    用貌似用like很多都读不出来.
    select * from area where typeid=1 and area regexp replace("浦东,卢湾,闵行,黄浦",",","|")调试后发现area是空的或者内容比关键字多是读不出结果.郁闷.
      

  4.   

    是否是mysql ?
    如果是的話mysql有內置函數FIND_IN_SET專門查詢逗號分割的,測試過無問題。
    SELECT * FROM area WHERE typeid=1 AND FIND_IN_SET('浦东',area)