数据库表里有一字段houseServiceId 类型为varchar 
字段内容为可能为|1,|11,|1|11|12|14
要求查询输入1是只查询出|1,|1|11|12|14

解决方案 »

  1.   

    select * from 表名 where houseServiceId like '%1%';
      

  2.   

    select * from 表名 where houseServiceId like '%1%';
    楼上的这一看就错了
    会吧|1,|11,|1|11|12|14 三个都查出来的
    二输入1我只要查出|1,|1|11|12|14 
    因为我的|是为了隔开没个数字
      

  3.   

    houseServiceId 这个字段是来存储很多个id的
    我用|把这些个id分开区别
    但是有时候查询的时候输入单个id我要准确的查出包含这个id的这一列(列如:我输入1只希望查出用|区分开的id为包含1的|1,|1|11|12|14 ,,,而当输入11的是好就只查出|11,|1|11|12|14 )
    我用的是mysql4.0的
      

  4.   

    我个人认为:版主想进行的是模糊查询,而模糊查询只能用like,可以先查询出如上的三个结果,在程序中进行语句的判断。这个想法简单些,但每次要处理的数据多。但如果程序本身的数据量不多可以考虑。
      

  5.   

    select * from 表名 where houseServiceId like '%|1' or houseServiceId like '%|1|%' ;
      

  6.   

    是不是可以这样?
    select * from 表名 where houseServiceId like '%|1' and houseServiceId like '%|1|%';
      

  7.   

    select * from test where testid like '%|1' or  testid like '%|1|%'
    这个可以直接查询出你想要的结果