MySQLにも数字で始まるデータを含む列を持つテーブルがあります
数字のみで始まる行を選択するにはどうすればよいですか?
SELECT * FROM YourTable WHERE YourColumn regexp '^[0-9]+'
できるよ:
SELECT *
FROM MyTable
WHERE MyColumn REGEXP '^[0-9]';
使用される正規表現は^[0-9]
。
^ - Start anchor, used to ensure the pattern matches start of the string.
[ - Start of character class.
0-9 - Any digit
] - End of character class
事実上、列でが数字で始まる値を選択しようとしています。
デモ:
mysql> select * from tab;
+-------+
| col |
+-------+
| 1foo |
| foo |
| 10foo |
| foo10 |
+-------+
4 rows in set (0.00 sec)
mysql> select * from tab where col regexp '^[0-9]';
+-------+
| col |
+-------+
| 1foo |
| 10foo |
+-------+
2 rows in set (0.00 sec)
さらに別の方法:
WHERE LEFT(columnName,1) IN ('0','1','2','3','4','5','6','7','8','9')
一般的な文字セットと照合順序では、これは機能し、列のインデックスを使用します。
WHERE columnName >= '0' AND columnName < ':'
また
SELECT * FROM YourTable
WHERE YourColumn LIKE '[0-9]%';
SELECT * FROM TABLE T
WHERE T.COLUMNNAME REGEXP '^[0-9]';
別の答えは:
SELECT * FROM TABLE T
WHERE T.COLUMNNAME RLIKE '^[0-9]';