2016-09-29 2 views
0

Ich habe eine Spalte (char) mit Werten zwischen A und Z Ich möchte nur die Datensätze auszuwählen, in dem das Zeichen ist> = ‚C‘alle Datensätze Wählen Sie nach dem CHAR c

Kann jemand mir helfen, mit dieser ? Ich habe versucht> = 'C', aber das hat nicht funktioniert. Auch dazu konnte ich im Internet nichts finden. Also dachte ich, es ist eine gute Frage zu stellen.

Antwort

3

Sie können den Wert ascii zum Vergleich verwenden.

select * from tablename where ascii(colname) >= ascii('C') 
+0

Vielen Dank! Ist das der einzige Weg, es zu tun? Oder kennen Sie eine andere Lösung? Nur aus Neugier. – Bas

+0

Ich frage mich, warum 'col> = 'C'' nicht für Sie funktioniert hat. das ist ein weiterer Weg. –

0

hier ist eine andere Methode.

SELECT SUBSTRING_INDEX(YourColumn,'c',-1) FROM Yourtable; 
+0

Soll SUBSTRING nicht nur für mehrere Zeichen verwendet werden? – Bas

+0

es kann verwendet werden, um die Zeichenfolge nach einem bestimmten Zeichen zu erhalten. siehe [link] (http://www.w3resource.com/mysql/string-functions/mysql-substring_index-function.php) –

0

Strings können mit regelmäßigen Vergleichsoperatoren in MySQL verglichen werden, so sollte diese Arbeit:

SELECT * FROM table WHERE col >= 'C'

beachten Sie, dass die genaue Reihenfolge, um (vor allem Empfindlichkeit Fall) für Strings, auf characterset hängt Kollation. Vielleicht ist das der Grund, warum es für dich nicht funktioniert hat.

Sie können auch ASCII() Funktion verwenden, die den Zeichenwert eines einzelnen Zeichens zurückgibt, und vergleichen denen:

SELECT * FROM table WHERE ASCII(col) >= ASCII('C')

Beachten Sie, dass dies nur funktioniert, für Single-Byte-Zeichen. Für Multi-Byte-Zeichen müssen Sie ORD() anstelle von ASCII() verwenden. Ein anderer Weg ist die Verwendung von STRCMP(), die zwei Strings vergleicht (wiederum unter Verwendung der Sortierreihenfolge Ihrer Zeichensatzkollatierung) und 0 zurückgibt, wenn die Strings gleich sind, -1, wenn das erste Argument kleiner als das zweite ist, und 1 sonst.

SELECT * FROM table WHERE STRCMP(col, 'C') >= 0

Verwandte Themen