首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 3.0 入門系列(十一):Like 模糊查詢進階——SqlMethods.Like 通配符、Escape 字元與 Not Like

     編輯:關於C語言

SqlMethods.Like:完整支援 T-SQL LIKE 模式

需引用 System.Data.Linq.SqlClient 命名空間。SqlMethods.Like 可在 LINQ 查詢中直接使用 T-SQL 通配符:

var q = (from c in db.Customers
         where SqlMethods.Like(c.CustomerID, "A%O%T")
         select c).ToList();

轉譯 SQL:

SELECT ... FROM [dbo].[Customers] AS [t0]
WHERE [t0].[CustomerID] LIKE @p0  -- @p0 = 'A%O%T'

意義:以 A 開頭、中間含 O、以 T 結尾,其餘任意。

SQL Server 四大通配符完整支援

通配符說明範例
%零或多個任意字元'%computer%' 含 computer 的書名
_單一任意字元'_ean' 以 ean 結尾的四字名
[range]指定範圍內單一字元'[C-P]arsen' 以 arsen 結尾、首字母 C-P
[^range]排除範圍內單一字元'de[^l]%' 以 de 開頭、第三字母非 l

範例:底線單一字元通配

var q = (from c in db.Customers
         where SqlMethods.Like(c.CustomerID, "A_O_T")
         select c).ToList();

轉譯 LIKE 'A_O_T',中間各一個任意字元。

Not Like:邏輯否定

var q = (from c in db.Customers
         where !SqlMethods.Like(c.CustomerID, "A_O_T")
         select c).ToList();

Escape 字元:處理字面通配符

若欄位值本身含 %、_、[],需指定 Escape 字元:

SqlMethods.Like(column, pattern, escapeChar)

轉譯為 LIKE pattern ESCAPE '\'。詳細規則參考 MSDN 文件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved