abc テーブルには、電話番号フィールドがあります。
そのフィールドには、次のような記録があります。
123456789
123 456 789
12345 5678
787878787
144444444
クエリで結果が得られるように、スペースのないレコードのみを検索したい:
123456789
787878787
144444444
では、何をクエリすればよいのでしょうか?
abc テーブルには、電話番号フィールドがあります。
そのフィールドには、次のような記録があります。
123456789
123 456 789
12345 5678
787878787
144444444
クエリで結果が得られるように、スペースのないレコードのみを検索したい:
123456789
787878787
144444444
では、何をクエリすればよいのでしょうか?
LIKE および NOT LIKEの MySQL ドキュメント
SELECT * FROM abc WHERE phone_number NOT LIKE '% %';
これにより、出力が次のように表示されます。
phone_number
-----------
123456789
787878787
144444444
上記のクエリとテーブル スクリプトのSQLFiddleは次のとおりです。
任意の文字列列から「数字のみ」の値のみが必要な場合は、おそらく 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
インデックスに優しい考えはありません...
SELECT * FROM myTable WHERE col REGEXP '[0-9]+';