SQL正则表达式,用于检查字符串是否包含某个子字符串

时间:2017-03-04 20:48:43

标签: sql regex mysqli

我正在使用SQL,需要使用正则表达式检查字符串是否包含某个子字符串。允许使用大小写字母和大写字母。

目前,我有     where description ='/ ^ [a-zA-Z \ s] mysubstring [a-zA-Z \ s] $ /'

但由于某种原因它不起作用。任何的想法?

1 个答案:

答案 0 :(得分: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%'