PHP Portal » PHP Forum » Entwicklung » MySQL, PostgreSQL und SQL-konforme Datenbanken » Alles außer A-Z auslesen

[MySQL] Alles außer A-Z auslesen 

von
Neuling
Zitat
Ich hab ein kleines Problem:

Ich möchte alle User auslesen lassen, die als 1. Zeichen des Usernamens kein Buchstaben haben.

Also sowas wie "Username!=[A-Z]". Hat jemand ne Idee?

Werbung

Re: Alles außer A-Z auslesen 

von
the Boss
Zitat
MySQL kann reguläre Ausdrücke

Code
1
2
3
SELECT ... FROM users WHERE LEFT(users.login,1) REGEXP '^[^A-Za-z]'

Re: Alles außer A-Z auslesen 

von
Neuling
Zitat
Hab das nun so gelöst:

Falls $_GET['letter'] vorhanden ist die normale MySQL:

Code
1
2
3
4
5
6
7
8
SELECT ID, Username FROM user WHERE Username LIKE 'LETTER%' ORDER BY Username ASC



Und wenn keiner vorhanden ist so:

Code
1
2
3
4
5
6
7
8
9
SELECT ID, Username FROM user WHERE LEFT (Username,1) REGEXP '^[^A-Za-z]' ORDER BY Username ASC

Re: Alles außer A-Z auslesen 

von
the Boss
Zitat
Like ist langsam,
besser ist

WHERE UPPER(LEFT(username,1)) = '[LETTER]'

Re: Alles außer A-Z auslesen 

von
Member
Zitat
Wenn dann aber so ... (er will ka "keine" Buchstaben haben9

WHERE UPPER(LEFT(username,1)) NOT IN ('A','B','C',....'Z')

Wobei noch zu klären wäre, ob es hier was kürzeres zum Schreiben gibt .. >> ('A','B','C',....'Z') <<

Re: Alles außer A-Z auslesen 

von
the Boss
Zitat
Ich bezog mich auf seine 1. Abfrage, wenn er die Buchstaben haben will.
Bei den nicht Buchstaben ist die regexp am schnellsten

Schnellantwort