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.]は単一の大文字/小文字またはピリオドに一致します。は+、前のサブ正規表現の 1 回以上の繰り返しの量指定子であるため、この場合、ピリオドまたは大文字/小文字のいずれかの 1 つまたは複数に一致させることができます。

MySQL での正規表現の使用に関する詳細情報

于 2012-09-15T13:37:51.850 に答える