WHERE field IN (list)
Einklappen
X
-
Mit FIND_IN_SET geht das – ist aber nicht besonders performant, und wie combie schon sagte sollte sowas in einem robusten Datenmodell i.a.R. gar nicht auftauchen.
-
Ein Verstoß gegen die erste Normalform.5,2,6,26,30
Aus: Die 5 Normal FormenDie 1. Normalform
Definition:
Ein Relationstyp ist in der 1. Normalform, wenn alle Attribute maximal einen Wert haben. Am Kreuzungspunkt einer Spalte mit einer Reihe darf also maximal ein Datenwert stehen. Das Nichtvorhandensein von Daten ist zulässig.
Mit anderen Worten: Wiederholungsgruppen sind nicht erlaubt.
Einen Kommentar schreiben:
-
WHERE field IN (list)
Hi
Ich suche oben genannte Abfrage nur umgekehrt. Gibt es diese Möglichkeit?
Ich habe ein Feld in der Tabelle, in dem eine ID oder mehrere eingetragen sind. Mehrere IDs sind mit einem , getrennt. Dann habe ich eine ID. Umgekehrt gibt es zwar kein Fehler, aber es gibt mir auch keinen wert.
SELECT * FROM table1 WHERE 26 IN (feld3)
Wenn ich nun drei Einträge habe:
feld1 | feld2 | feld3
1 | Peter | 2
2 | Hans | 5,2,6,26,30
3 | Tim | 26
So erhalte ich dann mit der obigen Abfrage die Zeile 3. Jedoch nicht die mit der 2. Gibt es da eine Möglichkeit?
Eine Variante die ich gefunden habe:
CONCAT(',' , feld3 , ',') LIKE '%,26,%'. Ggf gibt es noch andere?
Gruss und Danke
KodaZuletzt geändert von Koda; 06.12.2013, 15:41.Stichworte: -
Einen Kommentar schreiben: