关于sql模糊查询(全字段)

现在想做查询功能,点击查询,可以从名称,邮箱,地址之类的查询出来符合的信息。
对于mysql,可以使用concat进行连接字符串,再使用like查询。

是不是对于其他数据库(Oracle,SQLServer)只能用 or 关键字 进行连接?或者还有什么其他好的方法?
还有在hibernate中,应该如何实现?是将hql代替为 用or 连接的sql语句么?

代码是在VC++里面:

[cpp] view plaincopyprint?
CString sql, str;
sql.Format(_T("SELECT * FROM tbPatient WHERE admitDate BETWEEN CDate('%s %s') AND CDate('%s %s')"),
dtStartDate.Format(_T("%x")), dtStartTime.Format(_T("%X")),
dtEndDate.Format(_T("%x")), dtEndTime.Format(_T("%X")));

//字段合并的模糊查询 MYSQL concat(email,address) like 'like%df%'
if(!strKeyWord.IsEmpty())
{
//SQL Server中IsNull(expression, replace)有替换功能,
//Access需要结合IsNull ( expression ), iif (condition, value_if_true, value_if_false )函数

//str.Format(_T(" AND IsNull(name, ' ') & IsNull(Empid, ' ') LIKE '%%%s%%'"),
// strKeyWord.GetBuffer(0));

str.Format(_T(" AND iif(IsNull(name),' ',name) & iif(IsNull(Empid),' ',Empid) LIKE '%%%s%%'"),
strKeyWord.GetBuffer(0));

sql += str;
}

TRACE1("%s\n", sql);
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-02-17
一样可以用concat进行连接字符串,再使用like查询。追问

是说的hibernate?还是一般sql语句

追答

一般的SQL语句。

SQL模糊查找语句
SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下:1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McB...

SQL 怎么实现模糊查询?
1、首先需要开启数据库管理工具,打开SQL语言编写窗体。2、如果我们知道某字段的开头部分,我们可以用 like ‘xx%' select TOP 10 * from CK_ATE where Model like 'PSM24W%'。3、如果我们知道某字段的中间部分,可以使用 like ‘%xx%’select TOP 10 * from CK_ATE where Model like '%24W%'...

SQL模糊查询语句怎么写啊
1、假设表名为product,商品名为name,简界为remark.则可如下写:select [name],[remark] from product name like '%aa%' or remark like '%aa%'.注:上面单引号的aa你表模糊查询输入的字符。2、select * from (表名) where (搜索名称)like '%%' and id like '%(简介)%'3、用 Like 子...

sql语句查询,多字段like模糊查询优化
SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:LIKEMc%将搜索以字母Mc开头的所有字符串(如McBadden)。LIKE%inger将搜索以字母inger结尾的所有字符串(如Ringer、Stringer)。用Like子句。比如:Select*from[TableName]where[名称]Like%SQL%and[简介]like%Software%这就是查询[名称]...

模糊查询sql语句的方法 有哪些注意事项
SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:1、LIKE’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。2、LIKE’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。3、LIKE’%en%’ 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green...

SQL简单查询(条件查询 模糊查询)
一.基本查询语句 执行SQL查询,只需指定要获取的列名。例如:select 列名,列名,... from student;若需为列名定义别名,可在别名前加上"as"关键字,且中文别名需用英文引号括起:select 列名 as ABC,列名 as '其他名' from student;为去除重复数据,使用distinct关键字:select distinct 姓名 from ...

SQL Server:九、模糊查询:查询 0个、1个、多个字符,查询范围
在SQL Server中,模糊查询主要通过使用like关键字和通配符实现。首先,了解通配符的含义是关键:这里代表0个、1个或多个字符,例如查询姓刘的员工信息。再看下划线_,它代表匹配有且只有1个字符,比如查询名字中含有“尚”的员工,这里“尚”字前后可以有0个、1个或多个字符。查询包含“尚”或“史”的...

SQL:一个表多列模糊查询
1.我觉得你这样就行了,一般也是这样来实现的 2.对于模糊查询T-SQL有四个通配符 :包含0个或多个字符 _:匹配指定;[]:指定范围 [^]:排除范围 3.你考虑的这种空格,可以在查询前,用js正则表达式来过滤。4.对于稍复杂点的关键词搜索(比如新闻),常用的办法是在数据库中添加一个keyword字段,来...

sql语句进行模糊查询时如何同时用一句话筛选多个关键词
1、创建测试表,create table test_a(zlyt varchar2(20));2、插入测试数据,并提交;insert into test_a values('abc');insert into test_a values('dfs');insert into test_a values('rte');commit;3、执行sql语句,select zlyt, replace(replace(zlyt, 'b', 'x'), 'f', 'x') ...

SQL数据库怎么实现模糊查询?
1、首先,我们按下Ctrl+N创建一个SQL查询。2、然后,我们就能利用【create database ...】关键字创建。3、关键字写完后,我们写上新建的数据库名称。4、这时,就能点击分析查看是否存在错误。5、然后我们点击立即执行,我们可以看到限制命令已完成。6、接下来,我们刷新数据库就能看到这个新增的【myDb】...

相似回答