ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
361
361
EMPFEHLEN
-
12.06.05 14:13 #1
- Registriert seit
- Jun 2005
- Beiträge
- 2
Hallo Gemeinde,
ich möchte expr IN in einer WHERE clause wie folgt benutzen:
SELECT *
FROM t1
WHERE Id IN (1,2,3)
alledings in einer etwas mehr flexibleren Form:
SELECT a.*
FROM t1 a, t2 b
WHERE a.Id IN (b.IdList) AND b.ID = 1
Die Spalte b.IdList für b.Id = 1 enthält den Wert '1,2,3' (varchar spalte).
Das soll das gleiche Ergebnis liefern wieSELECT * FROM t1 WHERE Id IN (1,2,3). Tut's aber nicht. Hat jemand eine Idee?
Gruss und Dank
Al
-
Das ist meines Wissens nicht möglich.
Eine Alternative wäre, die Datenbank zu normalisieren, die Assoziation also in einer weiteren Tabelle auszulagern und mit einem Subquery zu arbeiten.Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.
-
15.06.05 09:28 #3
- Registriert seit
- Jun 2005
- Beiträge
- 2
Vielen Dank für die Antwort,
Zitat von hpvw
eine weitere Intersektion geht natürlich immer; bedeutet aber auch höheren Verwaltungaufwand, den ich in meinem speziellen Szenario gut hätte umgehen können, wenn IN die o.a. Syntax unterstützt hätte. Da die Daten nunmal in dieser Form (b.IdList = '1,2,3') vorliegen, dachte ich, es gäbe eine Möglichkeit, evtl. zu casten o.ä., so dass IN damit klarkommt.
Anscheinend ist IN für variable Argumente der o.a. Art nicht ausgelegt!? Oder, weiss sonst jemand noch Rat?
Grüsse
Al
-
IN ist für "Aufzählungen" ausgelegt. Der VARCHAR, den Du übergibst ist das einzige Element, welches Du aufzählst.
Ich habe bei den Zeichenketten-Funktionen keine Funktion gefunden, die einen CHAR splitten kann, daher wird es mit IN wohl nicht gehen.
Du könntest jedoch versuchen Dir einen Vergleich (ohne IN) zu überlegen, bei dem Du mit LOCATE oder einem regulären Ausdruck arbeitest.
Gruß hpvwWarum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.
Ähnliche Themen
-
VB 2008 expr. Bräuchte mal Hilfe
Von blackgear im Forum .NET CaféAntworten: 1Letzter Beitrag: 17.12.08, 20:48 -
SELECT DISTINCT (SQL-Expr)
Von Alfred_ im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 13.10.06, 07:16 -
eMails von Outlook Expr zu Thunderbird
Von Crai im Forum Linux & UnixAntworten: 2Letzter Beitrag: 10.10.05, 18:13 -
reg Expr. für $_egal
Von Major im Forum PHPAntworten: 5Letzter Beitrag: 23.05.03, 20:03 -
reg. expr. suchen
Von METATR0N im Forum PHPAntworten: 5Letzter Beitrag: 03.05.02, 07:55





Zitieren
Login





