2016-11-15 52 views
1

SELECT 'pharase' REGEXP '[^a-zA-Z]+' - 驗證該短語不包含英文字符(或不是?)。MySQL REXEXP不起作用

爲什麼查詢SELECT '123g' REGEXP '[^a-zA-Z]+' -> 1顯示1而不是0?

回答

2

要檢查一個字符串只包含英文字符,使用

SELECT 'pharase' REGEXP '^[a-zA-Z]+$' 

其中:

  • ^ - 斷言的位置在字符串
  • [a-zA-Z]+的開始 - 1個或多個ASCII字母
  • $ - 字符串末尾

SELECT '123g' REGEXP '[^a-zA-Z]+' -> 1顯示1因爲字符串包含123,非字母,部分匹配找到具有REGEXP(不像LIKE需要一個完整的字符串匹配)。

+0

您可以使用'NOT REGEXP'[A-Za-z]'來獲取不包含英文字母的條目。或'REGEXP'^ [^ A-Za-z] + $'' –

+0

如何在不使用'NOT REGEXP'('NOT REGEXP [a-zA-z]')的情況下檢查短語是否包含英文字符? – sibipi

+0

請檢查我上面更新的評論。 –