我想重建一個數據庫查詢,我爲MySQL中創建的MySQL。我要尋找一個在微軟SQL的一個術語,它的作用就像REGEXP微軟SQL的等效的MySQL REGEXP
這裏是怎麼了使用期限
select * from musicdetails WHERE artistname REGEXP '^".mysql_escape_string($_GET['search'])."$'
任何幫助,將不勝感激
我想重建一個數據庫查詢,我爲MySQL中創建的MySQL。我要尋找一個在微軟SQL的一個術語,它的作用就像REGEXP微軟SQL的等效的MySQL REGEXP
這裏是怎麼了使用期限
select * from musicdetails WHERE artistname REGEXP '^".mysql_escape_string($_GET['search'])."$'
任何幫助,將不勝感激
在這裏你去(編譯爲SQL CLR組裝):
using System.Collections;
using System.Text.RegularExpressions;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
[SqlFunction]
public static bool RegexMatch(string expr, string regex)
{
return Regex.IsMatch(expr, regex);
}
[SqlFunction]
public static string RegexReplace(string expr, string regex, string replace)
{
return Regex.Replace(expr, regex, replace);
}
[SqlFunction(FillRowMethodName="GetToken",
TableDefinition="Value nvarchar(max)")]
public static IEnumerable RegexSplit(string expr, string regex)
{
return Regex.Split(expr, regex);
}
public static void GetToken(object row, out string str)
{
str = (string) row;
}
}
可以的唯一途徑的例子在SQL Server(2005及以上版本)中這樣做是爲了使用CLR功能;作爲本機SQL查詢的一部分的正則表達式不是標準的。
有一個免費的SQLCLR庫已調用SQL#(SQLsharp)幾個正則表達式的功能。你可以找到它:http://www.SQLsharp.com/
我相信函數RegEx_IsMatch是你在找什麼。
[我是SQL#的作者]
+1並查看我的回答:) – leppie 2010-03-25 12:18:30