2010-03-25 65 views
4

我想重建一個數據庫查詢,我爲MySQL中創建的MySQL。我要尋找一個在微軟SQL的一個術語,它的作用就像REGEXP微軟SQL的等效的MySQL REGEXP

這裏是怎麼了使用期限

select * from musicdetails WHERE artistname REGEXP '^".mysql_escape_string($_GET['search'])."$' 

任何幫助,將不勝感激

回答

5

在這裏你去(編譯爲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; 
    } 
} 
0

有一個免費的SQLCLR庫已調用SQL#(SQLsharp)幾個正則表達式的功能。你可以找到它:http://www.SQLsharp.com/

我相信函數RegEx_IsMatch是你在找什麼。

[我是SQL#的作者]