1
我使用SQL,需要檢查是否字符串包含一定子使用正則表達式。允許使用大小寫字母和空格。SQL正則表達式,如果字符串包含一定子
目前,我有 其中描述= '/^[A-ZA-Z \ S] mysubstring [A-ZA-Z \ S] $ /'
但它不工作了一段原因。任何想法?
我使用SQL,需要檢查是否字符串包含一定子使用正則表達式。允許使用大小寫字母和空格。SQL正則表達式,如果字符串包含一定子
目前,我有 其中描述= '/^[A-ZA-Z \ S] mysubstring [A-ZA-Z \ S] $ /'
但它不工作了一段原因。任何想法?
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%'
您正在使用哪個RDMS? – trincot
它看起來像你沒有正確使用模式。它應該看起來像'WHERE description REGEXP'^ [[:alpha:] [:space:]] * mysubstring [[:alpha:] [:space:]] * $'' –
您可以簡單地使用LIKE語句來檢查子字符串 – sumit