8

我一直在尝试编写此查询,我需要选择一列只有字母 (az) 和句号的行。

我试过这个,但它不工作:

SELECT * FROM table WHERE (c1 REGEXP '[^a-zA-Z\.]') = 0

这个通常在 PHP 中工作。

4

1 回答 1

17

尝试:

SELECT * FROM table WHERE c1 REGEXP '^[a-zA-Z.]+$'

锚点^$确保您匹配整个字符串而不是其中的一部分。接下来,字符类[a-zA-Z.]匹配单个大写/小写字母或句点。The+是前一个子正则表达式的一个或多个重复的量词,因此在这种情况下,它允许我们匹配一个或多个句点或大写/小写字母。

有关 MySQL 中正则表达式使用的更多信息

于 2012-09-15T13:37:51.850 回答