MySQL多字段模糊查询

假设存在一个表,表名为content_node_relation,包含以下字段且存在几条记录:

content_idnode_idcontent_statusdownload_progress
20170322_bbbALOCATED0
20170322_dddALOCATED0
20170407_a9lab1411LOCATED0

现在需要根据用户从网页输入的三个字段进行模糊匹配查询,每个字段都可能是不完整输入,例如:

content_id : bbb , node_id : A

则查询语句应该为:

select*from content_node_relation where content_id like '%bbb%' and node_id like '%A%';

查询结果为:

若用户从网页只输入了一个字段,例如:

content_id : ddd

则查询语句应该为:

select*from content_node_relation where content_id like '%ddd%' and node_id like '%%';

查询结果为:

此外,如用户查询的字段较多,可以用concat关键字将多个字段组装起来,但是这样就不能按字段进行模糊匹配了,而是按照所有字段合并在一起进行模糊查询。例如,用户从网页输入的信息为:

content_id : bbb , node_id : A

则查询语句为:

select*from content_node_relation where concat(content_id,node_id) like '%bbbA%'; 

查询结果为:

总结
MySQL多字段模糊查询的一般语法为:

select*from table where column1 like '%a%' and column2 like '%b%'; (a,b为用户输入的用于模糊搜索的字段)

多字段拼接后模糊查询的一般语法为:

select*from table where concat(colunm1,colum2) like '%ab%';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值