0

abc テーブルには、電話番号フィールドがあります。

そのフィールドには、次のような記録があります。

123456789
123 456 789
12345 5678
787878787
144444444

クエリで結果が得られるように、スペースのないレコードのみを検索したい:

123456789
787878787
144444444

では、何をクエリすればよいのでしょうか?

4

3 に答える 3

7

LIKE および NOT LIKEの MySQL ドキュメント

SELECT * FROM abc WHERE phone_number NOT LIKE '% %';

これにより、出力が次のように表示されます。

phone_number
-----------
123456789
787878787
144444444

上記のクエリとテーブル スクリプトのSQLFiddleは次のとおりです。

于 2013-08-17T09:48:10.507 に答える
3

任意の文字列列から「数字のみ」の値のみが必要な場合は、おそらく MySQL 正規表現を使用できます。

select * from tbl where col_name REGEXP '^[0-9]+$'

列に数字またはスペースのみが含まれていることが確実な場合:

select * from abc where col_name not like '% %'

または

select * from abc where LOCATE(' ', col_name) = 0

インデックスに優しい考えはありません...

于 2013-08-17T09:50:29.223 に答える
0
SELECT * FROM myTable WHERE col REGEXP '[0-9]+';
于 2013-08-17T09:50:36.017 に答える