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“多字段模糊匹配關鍵字查詢”。