2010-09-14 13 views
5
beginnen

Ich muss eine Abfrage mit MYSQL REGEXP schreiben, die mich Zeilen finden, die eine bestimmte Spalte mit 11 oder 12 beginnen oder usw. Ich weiß, dass ich LIKE oder LEFT (####) verwenden kann , 2) möchte aber die Option REGEXP verwenden. Meine Daten werden als 110001, 122122, 130013a gespeichert und etc.MySQL REGEXP für Zahlen, die mit

EDIT 1:

Um es klar zu machen, würde ich

SELECT * FROM table WHERE column LIKE '11%' or column LIKE '12%' or column LIKE '30%'"  

mit REGEXP

Dank ausdrücken mögen!

+3

Wenn der Wert mit 11 oder 12 beginnt, wird LIKE besser als REGEXP. Schlechtes Üben, um zu kodieren, was man mag, gegen was am besten funktioniert ... –

+0

Was meinst du mit '11 oder 12 oder etc. "Meinst du irgendwas mit zwei Ziffern beginnend? Alles beginnt mit 1 gefolgt von einer anderen Ziffer? zwei Ziffern außer Null? Etwas anderes? –

+0

Wow, Mann ihr Jungs seid schnell Ich wollte sagen, dass ich nur Zeilen brauche, die Spalte 1 haben, die mit 11 oder 12 oder 32 beginnt, oder jede Kombination von 2 Ziffern, die ich werfe Danke! – pistolshrimp

Antwort

15

Zeilen entsprechen, die mit irgendwelchen zwei Ziffern beginnen können Sie:

SELECT * 
FROM yourtable 
WHERE yourcolumn REGEXP '^[0-9][0-9]'; 

Wenn Sie nur mit 11, 12 Startreihen zulassen wollen oder 30 dann könnten Sie verwenden:

SELECT * 
FROM yourtable 
WHERE yourcolumn REGEXP '^(11|12|30)'; 

Dies ist nicht in der Lage, einen Index für die Spalte zu verwenden, so dass es möglicherweise langsamer als LIKE ist.

+0

Vielen Dank Aber das ist nicht das, wonach ich suche. Ich brauche etwas wie "SELECT * FROM Tabelle WHERE Spalte LIKE '11% 'oder Spalte wie '12%' oder Spalte wie '30% '" ausgedrückt mit REGEXP. – pistolshrimp

+0

Mark, danke. Ich fühle mich wie ein Idiot :) – pistolshrimp