发一下牢骚和主题无关:
假设有这样两条数据:
(表名为user)
1) username=admin,password=000000
2) username=admin,password=123456
我们要实现的效果是可以入输多个关键字查询,多个关键字间以逗号分开。
应用上述表举例:入输单个关键字“admin”可查出这两条数据,入输“admin,000000”只查出第一条数据,可实现的sql句语是:
select * from user where concat(username, password) like '%admin%';
select * from user where concat(username, password) like '%admin%' and concat(username, password) like '%000000%';
concat的作用是连接字符串,但这样有一个问题:如果你入输单个关键字“admin000000”也会查到第一条数据,这明显不是我们想要的结果,决解方法是:由于应用逗号分开多个关键字,说明逗号远永不会成为关键字的一部分,所以我们在连接字符串时把每一个字段以逗号分开可即决解此问题,面下这个sql句语不会查询到第一条数据:
select * from user where concat(username, ',', password) like '%admin000000%';
如果分开符是空格或其他号符,修改 ',' 为 '分开符' 可即。
结总:
select * from 表名 where concat(字段1, '分开符', 字段2, '分开符', ...字段n) like '%关键字1%' and concat(字段1, '分开符', 字段2, '分开符', ...字段n) like '%关键字2%' ......;
本文最早写在51cto上:http://mayacong.blog.51cto.com/3724695/965621
文章结束给大家分享下程序员的一些笑话语录: 祝大家在以后的日子里. 男生象Oracle般健壮; 女生象win7般漂亮; 桃花运象IE中毒般频繁; 钱包如Gmail容量般壮大, 升职速度赶上微软打补丁 , 追女朋友像木马一样猖獗, 生活像重装电脑后一样幸福, 写程序敲代码和聊天一样有**。