AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mysql - "eine" abfrage - zwei ergebnisse?

Mysql - "eine" abfrage - zwei ergebnisse?

Ein Thema von Tyler · begonnen am 10. Apr 2008 · letzter Beitrag vom 10. Apr 2008
Antwort Antwort
Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#1

Mysql - "eine" abfrage - zwei ergebnisse?

  Alt 10. Apr 2008, 12:40
Moin,

folgende Abfrage:

SQL-Code:
select artikel.*
from artikel
where
left(bezeichnung, 1) in ('a', 'e', 'o', 'u', 'i') AND
substring(bezeichnung, 4, 0) in ('r', 'z', ' ') and
bezeichnung like '%[0-9]'

order by bezeichnung;
führ zu 121 Datensätzen und scheinbar wird hier die 2. Bedingung - das vierte Zeichen ist R,Z oder leer nicht beachtet.

Die folgende Abfrage macht dann alles richtig und ich bekomme knapp 10 Datensätze zurückgeliefert...


SQL-Code:
select artikel.*
from artikel
where
left(bezeichnung, 1) in ('a', 'e', 'o', 'u', 'i') AND
substring(bezeichnung, 4, 0) in ('r', 'z', ' ') and
right(bezeichnung, 1) in ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0')
order by bezeichnung;
Der fehler liegt also offensichtlich bei meiner 3. Bedingung... versteh aber nich wieso, weshalb und warum... jemand ne Ahnung was hier schief läuft?


Danke
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Mysql - "eine" abfrage - zwei ergebnisse?

  Alt 10. Apr 2008, 13:58
Ich kenne die Funktion substr nicht (und bin auch kein SQL-Profi), aber ich vermute mal, der letzte Parameter von
Code:
substring(bezeichnung, 4, 0)
ist die Länge. Wenn ja würde es doch Sinn machen, dort 1 einzutragen, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#3

Re: Mysql - "eine" abfrage - zwei ergebnisse?

  Alt 10. Apr 2008, 14:37
hm... das könnte in der Tat die Fehlerquelle sein, aber warum ändert sich das Ergebnis
dann bei der zweiten Abfrage? Ich werd das auf jeden Fall prüfen, danke dir
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Mysql - "eine" abfrage - zwei ergebnisse?

  Alt 10. Apr 2008, 14:59
MySQL kann doch mit regulären Ausdrücken umgehen. Wäre das hier nicht eine Option? Leider bin ich kein Experte in RegEx, sonst hätte ich einen Vorschlag gepostet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#5

Re: Mysql - "eine" abfrage - zwei ergebnisse?

  Alt 10. Apr 2008, 20:47
wegen der RegEx:

^ zeilenanfang
. beliebiges zeichen
$ zeilenende

[0-9] ein Zeichen als Ziffer

daraus würde sich ergeben:

^[aeiou] für eines der zeichen in den klammern am Anfang
^...[rz ] als 4.zeichen 'r','z' oder ' ' (alternativ auch ^.{3}[rz ])

wie man das im Mysql verwendet, weis ich aber auch nicht , aber wenns jemand weis, kann ers ja Posten. würde mich auch interessieren

HTH Frank
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Mysql - "eine" abfrage - zwei ergebnisse?

  Alt 10. Apr 2008, 21:11
Och, das geht einfach:
SELECT * FROM table WHERE name REGEXP '^[a-zA-Z]{5,}$'
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz