2017-03-04 258 views
1

我使用SQL,需要檢查是否字符串包含一定子使用正則表達式。允許使用大小寫字母和空格。SQL正則表達式,如果字符串包含一定子

目前,我有 其中描述= '/^[A-ZA-Z \ S] mysubstring [A-ZA-Z \ S] $ /'

但它不工作了一段原因。任何想法?

+0

您正在使用哪個RDMS? – trincot

+0

它看起來像你沒有正確使用模式。它應該看起來像'WHERE description REGEXP'^ [[:alpha:] [:space:]] * mysubstring [[:alpha:] [:space:]] * $'' –

+0

您可以簡單地使用LIKE語句來檢查子字符串 – sumit

回答

3

MySQL的正則表達式是不支持相同的語法PHP PCRE正則表達式。如果你想使用正則表達式檢查,你必須使用REGEXP operator。接下來,它不支持\s和其他速記類,您需要用[:space:] POSIX字符類替換它。

此外,默認情況下,MySQL REGEXP將執行不區分大小寫的正則表達式檢查,但您仍然可以使用[A-Za-z],以防萬一您有非標準選項。

使用

WHERE description REGEXP '^[a-zA-Z[:space:]]*mysubstring[a-zA-Z[:space:]]*$' 

如果你不關心什麼存在的條目,你只需要找到那些含有你的字符串,使用LIKE%(=任何文本)通配符:

WHERE description LIKE '%mysubstring%' 
相關問題