wake-up-neo.com

Wählen Sie Werte aus, die mit einer Zahl beginnen

Ich habe eine Tabelle mit einer Spalte, die Daten enthält, die auch mit Zahlen auf MySQL beginnen

Wie kann ich die Zeilen auswählen, die nur mit einer Nummer beginnen?

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

Du kannst tun:

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

Der verwendete reguläre Ausdruck ist ^[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

Wir versuchen effektiv, die Werte in der Spalte auszuwählen, diemit einer Zifferbeginnen.

Demo:

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

Noch ein anderer Weg:

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

und mit allgemeinen Zeichensätzen und Sortierungen würde dies funktionieren und einen Index für die Spalte verwenden:

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

ebenfalls

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

Eine andere Antwort lautet:

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