数据库表里有一字段houseServiceId 类型为varchar 字段内容为可能为|1,|11,|1|11|12|14 要求查询输入1是只查询出|1,|1|11|12|14sf select * from 表名 where houseServiceId like '%1%'; select * from 表名 where houseServiceId like '%1%'; 楼上的这一看就错了 会吧|1,|11,|1|11|12|14 三个都查出来的 二输入1我只要查出|1,|1|11|12|14 因为我的|是为了隔开没个数字 说下这些字符串的特点吧. 根据特点来匹配 houseServiceId 这个字段是来存储很多个id的 我用|把这些个id分开区别 但是有时候查询的时候输入单个id我要准确的查出包含这个id的这一列(列如:我输入1只希望查出用|区分开的id为包含1的|1,|1|11|12|14 ,,,而当输入11的是好就只查出|11,|1|11|12|14 ) 我用的是mysql4.0的
我个人认为:版主想进行的是模糊查询,而模糊查询只能用like,可以先查询出如上的三个结果,在程序中进行语句的判断。这个想法简单些,但每次要处理的数据多。但如果程序本身的数据量不多可以考虑。 是不是可以这样? select * from 表名 where houseServiceId like '%|1' and houseServiceId like '%|1|%'; 按照你的需求 每个数只会有两个形态 (|数) 和 (|数|) 是or 。。。 7楼正解