Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> MySQL Benutzernamen
Coach
Geschrieben am: Fr 25.07.2008, 12:46
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 136
Mitglied seit: 26.09.2007


Hallo, ich suche eine Möglichkeit, mir die Benutzernamen auszugeben, die nicht mit den buchstaben a-z beginnen.
hab es so probiert:

SELECT USER_EMAIL FROM system_user_data AS a LEFT JOIN system_user AS b ON a.USER_ID = b.USER_ID WHERE USER_NAME NOT BETWEEN 'A%' AND '%Z' ORDER BY USER_NAME

hat aber nicht geklappt.
kann mir da jemand weiterhelfen?
Top
PMEmail Poster
Top
 
 
Flips
#2 Geschrieben am: Fr 25.07.2008, 13:03 (+00:17)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 109
Mitglied seit: 17.07.2008


CODE
SELECT USER_EMAIL FROM system_user_data AS a LEFT JOIN system_user AS b ON a.USER_ID = b.USER_ID WHERE SUBSTRING( USER_NAME, -1*LENGTH(USER_NAME), 1 ) NOT REGEXP '^[a-z]' ORDER BY USER_NAME


nicht getestet sollte aber funktionieren wink.gif

ps: sollte die spalte case sensitve sein solltest du noch was ändern (soweit ich mit der vermutung richtig liege, dass du alles auswählen willst, was nicht mit a-z und auch nicht mit A-Z beginnt)
CODE
SELECT USER_EMAIL FROM system_user_data AS a LEFT JOIN system_user AS b ON a.USER_ID = b.USER_ID WHERE SUBSTRING( USER_NAME, -1*LENGTH(USER_NAME), 1 ) NOT REGEXP '^[a-zA-Z]' ORDER BY USER_NAME


--------------------
Top
PMEmail Poster
Top
 
Jürgen Auer
Server-Daten - Online-CRM-Lösungen
#3 Geschrieben am: Fr 25.07.2008, 19:48 (+06:45)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 3267
Mitglied seit: 4.02.2006


QUOTE (Coach @ Fr 25.07.2008, 12:46)
SELECT USER_EMAIL FROM system_user_data AS a LEFT JOIN system_user AS b ON a.USER_ID = b.USER_ID WHERE USER_NAME NOT BETWEEN 'A%' AND '%Z' ORDER BY USER_NAME

Der Between-Operator akzeptiert keine Wildcards, wie das der Like-Operator macht.

Also liefert

CODE
Between 'A' And 'Z'


alle Einträge, die mit einem Buchstaben beginnen.

'%' hat den Unicode-Codepunkt 37, A = 65, Z = 90.

Mit

CODE
BETWEEN 'A%' AND '%Z'


kriegst Du alles, was mit Zeichen größergleich A und kleinergleich '%' beginnt - also gar nichts. '%' wird hier gemäß seines Codepunktes interpretiert, nicht als Wildcard. Und einen Codepunkt größergleich 65 und kleinergleich 37 gibt es nun mal nicht.

Die Verneinung dafür liefert fast alles - alle Einträge, die nicht Null sind. Letzteres gilt zumindest für Standard-Sql. Da ich ja neulich bei dem Group By gelernt habe, daß sich mySql nicht immer unbedingt an den Standard hält, weiß ich aktuell nicht, ob das da auch gilt.

Ergebnis:

CODE
Not Between 'A' And 'Z'


ist im Prinzip der richtige Ansatz, wobei eine Sortierung definiert sein muß, die Groß/Kleinschreibung ignoriert. Und das sollte auch sehr viel schneller gehen als die Nutzung eines RegEx. Der Between-Operator berücksichtigt normalerweise auch Indices.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

Server-Daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung.
Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert.
Top
PMEmail PosterUsers Website
Top
 

#4 Geschrieben am: Fr 25.07.2008, 20:40 (+00:52)
Report PostQuote Post

AyomRank 1
**

Gruppe: Member (inaktiv)
Beiträge: 0
Mitglied seit: --


Ich weiss auch nicht, ob die Daten case-sensitv sind.
Sonst probier einfach mal:

SELECT USER_EMAIL FROM system_user_data AS a LEFT JOIN system_user AS b ON a.USER_ID = b.USER_ID WHERE LEFT(LCASE(USER_NAME),1)<'a' or LEFT(LCASE(USER_NAME),1)>'z' ORDER BY USER_NAME

Grüsse

Tümmel
Top
PMEmail Poster
Top
 
Coach
#5 Geschrieben am: Fr 25.07.2008, 21:53 (+01:12)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 136
Mitglied seit: 26.09.2007


ahja, ich hab das jetzt verstanden und werds morgen direkt ausprobieren.. danke euch beiden!
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/25500

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
MySQL Sortierung ist irgendwie komisch! webdoktor 225 13 Fr 5.03.2010, 10:20
MYSQL Update-Befehl auf Basis Erg. SELECT Abfrage? Claus Lehmann 168 4 Mi 3.03.2010, 12:27
MySQL-Volltextsuche mit REGXP PH 185 10 Do 4.02.2010, 16:47
Programmierer (PHP/MySQL/JS) im Raum Dresden qwerket 221 2 Mo 1.02.2010, 12:11
mysql performance Felix Weber 290 8 Di 19.01.2010, 21:01
Abfrage einer MySQL Datenbank webdoktor 266 10 Fr 8.01.2010, 18:11
Eingabeformular für MYSQL Tabellen generieren Sancheck 250 7 Mo 16.11.2009, 13:55
Intelligente MySQL Abfrage Sancheck 291 6 Sa 14.11.2009, 22:10
multiline - fähige Query-GUI für mySQL TSc 285 13 Di 3.11.2009, 00:35
MySQL Statement Problem TTlong 206 9 Mi 21.10.2009, 02:10




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]