SQL“多字段模糊匹配關鍵字查詢”_Mssql數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:詳解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推出了全面的空間支持,使得企業可以通過采用了空間技術的應用程序無縫的消耗、使用和擴展基于本地的數據,這應用程序最終幫助終端用戶作更好的決策…… 業務和消費

      來源:模板無憂//所屬分類:Mssql數據庫教程/更新時間:2008-08-22
      相關Mssql數據庫教程