SQL“多字段模糊匹配关键字查询”_Mssql数据库教程
推荐:详解SQL Server 2008中的联机事务处理在过去的20年数据库得到了普遍使用,并迅速发展。存储和技术成本的降低导致大量地存储数据和数据库的急剧扩大。由于这个简单有效的技术,内嵌的数据库和许多产品应运而生,并使得公司可以存储更
我们开发数据库应用时,常常需要用到模糊查询。如果同一个条件需要匹配很多字段怎么办呢?通常,程序员会每个字段都在SQL中“field like'%cond%'”一次。这样,SQL语句会长得惊人,碰上复杂一点的,甚至SQL语句会因为超长而被数据库拒绝执行。其实,这个问题只要动动脑筋就很容易解决:首先,将要匹配相同条件的字段连起来(field1 field2 ...)成一个长字符串;然后再 Like “%cond%”就可以了。不过这种方法有个问题,就是得权衡多表连接造成的效率降低。一般来说,单表内字段肯定应该连接后再统一like判断;表间字段,则需要先过滤后,再实行这个策略。采取这个策略,不仅可以缩短SQL,而且能够有效地提高SQL的执行效率。
例:
以下为引用的内容: QUOTE:
create table orders (
id int not null auto_increment, name varchar(100) not null, email varchar(255) not null, address text not null, pay_type char(10) not null, shipped_at datetime null, primary key (id) ); |
里面有数据
1 aaa aaa@gmail.com beijing cc 2006-10-11 16:17:26
现在想要查找出email为aaa开头的,address为bei开头的记录
那么一般我们会构建如下SQL
select * from orders o where o.email like "aaa%" and o.address like "bei%"
其实我们可以使用如下SQL来缩短SQL语句(也就是连接字段一起进行like操作)
SELECT * FROM orders o where concat(o.email,o.address) like "like
分享:解读微软SQL Server 2008空间数据SQL Server 2008推出了全面的空间支持,使得企业可以通过采用了空间技术的应用程序无缝的消耗、使用和扩展基于本地的数据,这应用程序最终帮助终端用户作更好的决策…… 业务和消费
- sql 语句练习与答案
- 深入C++ string.find()函数的用法总结
- SQL Server中删除重复数据的几个方法
- sql删除重复数据的详细方法
- SQL SERVER 2000安装教程图文详解
- 使用sql server management studio 2008 无法查看数据库,提示 无法为该请求检索数据 错误916解决方法
- SQLServer日志清空语句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸载方法(其他版本类似)
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表
- SQL Server 2008 清空删除日志文件(瞬间日志变几M)
- Win7系统安装MySQL5.5.21图解教程
- 将DataTable作为存储过程参数的用法实例详解
- 相关链接:
- 教程说明:
Mssql数据库教程-SQL“多字段模糊匹配关键字查询”。