Anzeige - [Interessiert an einer Anzeige?]
(?) 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: 102
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 3
******

Gruppe: Member (aktiv)
Beiträge: 28
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
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#3 Geschrieben am: Fr 25.07.2008, 19:48 (+06:45)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2305
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 - die 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: 102
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
Suche Freelancer: Ajax, XML, PHP, MySQL omc 153 2 Mo 6.10.2008, 20:14
Lösung für: Content Slider-Java Script-PHP-MySql Antoine Johannes 130 2 Fr 26.09.2008, 12:54
PHP + MySQL 2 Fragen an euch Coach 152 1 Do 18.09.2008, 10:52
PHP und MySQL Probleme Swisstiger 501 4 So 14.09.2008, 22:23
PHP/MySQL Entwickler für Projekt gesucht BigRed 129 0 Fr 5.09.2008, 12:05
[MYSQL] ø bei Suche nach o finden MarkusH 122 1 Mi 20.08.2008, 09:10
Suche PHP/MYSQL Programmierer Paidunion 179 0 So 17.08.2008, 12:56
Suche kleinere Jobs (HTML, PHP, MySQL...) Oliver Pester 271 2 Do 14.08.2008, 14:08
Diskussion: Login-Skript mit Sessions, PHP und ... Ayom-Team 303 2 Mo 11.08.2008, 03:33
MySQL Abfrage von einer Tabelle webdoktor 436 19 Sa 9.08.2008, 17:45




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]