msql多条件查询问题,具体问题看下面

问题描述:mysql数据库多条件查询,假设有字段num、name、date,有数据1234、hello、2017-8-8,实现以下功能的查询语句:

  • 一、当输入三字数据中任意一个时,可以查询出来;
  • 二、当输入任意两个或者两个以上时可以查询出来;
  • 三、以上的输入为包含字符串时可以查询出来,如,输入23可以查询出来,同时输入234、llo也可以查询出来。
  • 以上条件需同时满足。

首先,多条件查询,肯定要用到sql的拼接了,判断是输入的参数是否为空,是就不执行,否就执行where 后面的条件。你说的要求三就是,模糊查询。

select * from 表 where num like '%传递的参数%' or name like '%传递的参数%' or date like '%传递的参数%'

模糊查询被 你说的 思路理清了 再做 很简单

select * from 表 where (num like '%传递的参数%' or name like '%传递的参数%' or date like '%传递的参数%')

select *
from Tab
where 。。。。

select * from 表 where (num like '%条件1%' or name like '%条件2%' or date like '%条件3%')

你这个实现得用存储过程或者函数。不过上面的语句写的都有问题,不能用or,不然就会出错
MySQL很久没用了,只能给你个思路
用动态语句declare @sql = 'select * from table where 1=1 '
如果三个条件有不为空的,直接在@sql后面加上' and column like ''%条件%''',column代表你的num、name、date
然后执行这个@sql就行了。
我这是sqlserver的动态语句写法,不过两个应该差不多,应该就是“'”的转义两个有差别