web-dev-qa-db-fra.com

Sélectionnez les valeurs qui commencent par un nombre

J'ai une table avec une colonne contenant des données qui commencent par des nombres, sur MySQL

Comment puis-je sélectionner les lignes qui commencent seulement par un nombre?

16
Omega
SELECT * FROM YourTable WHERE YourColumn regexp '^[0-9]+'
30
Sarfraz

Tu peux faire:

SELECT *
FROM MyTable
WHERE MyColumn REGEXP '^[0-9]';

L'expression régulière utilisée est ^[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

Effectivement, nous essayons de sélectionner les valeurs dans la colonne qui commence par un chiffre.

Démo:

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)
7
codaddict

Encore une autre manière:

WHERE LEFT(columnName,1) IN ('0','1','2','3','4','5','6','7','8','9')

et avec des jeux de caractères et des classements communs, cela fonctionnerait et utiliserait un index sur la colonne:

WHERE columnName >= '0' AND columnName < ':'
6
ypercubeᵀᴹ

également

SELECT * FROM YourTable
WHERE YourColumn LIKE '[0-9]%';
5
Lukas Greso
SELECT * FROM TABLE T
WHERE T.COLUMNNAME REGEXP '^[0-9]';

Une autre réponse est:

SELECT * FROM TABLE T
WHERE T.COLUMNNAME RLIKE '^[0-9]';
1
Vaibhav Kumar