MySQL IN-Befehl variieren?
Ralf
- datenbank
Hallo,
ich habe folgende Abfrage:
"WHERE IN ('$keyword1', '$keyword2')"
Das Problem ist, dass er mit dieser Abfrage alle Einträge abholt, die entweder keyword1 oder keyword zwei in der Menge haben. Ich suche jedoch nach einem Befehl, der nur Einträge abholt, wenn beide keywords in der Menge sind. Ist das möglich?
Vielen Dank im Vorraus!
Ralf
Hello,
Wenn ja, dann stelle deine Keywords in ein Array und nutze implode.
wobei, vielleicht bin ich etwas voreilig. WAS willst du eigentlich erreichen? Redest du über EINEN Datensatz, der verschiedene Bedingungen erfüllen soll, oder redest du über x Datensätze, die x Bedingungen gleichzeitig erfüllen sollen?
MfG
Rouven
wobei, vielleicht bin ich etwas voreilig. WAS willst du eigentlich erreichen? Redest du über EINEN Datensatz, der verschiedene Bedingungen erfüllen soll, oder redest du über x Datensätze, die x Bedingungen gleichzeitig erfüllen sollen?
Es geht um einen Datensatz, der x Bedingungen erfüllen soll, wenn ich das richtig sehe. In einer Tabelle habe ich Links zu Seiten, dann noch eine Tabelle in der verschiedene Tags stehen und in der dritten Tabelle steht, welches Tag mit welchem Link verbunden ist. Nun habe ich die drei Tabellen mit JOIN verbunden und möchte dann eben alle Links haben, die alle Tags enthalten. Geht das vielleicht irgendwie unabhängig von IN?
Moin,
Das Problem ist, dass er mit dieser Abfrage alle Einträge abholt, die entweder keyword1 oder keyword zwei in der Menge haben. Ich suche jedoch nach einem Befehl, der nur Einträge abholt, wenn beide keywords in der Menge sind. Ist das möglich?
Das müsste ungefähr so funktionieren:
SELECT
*
FROM
tablename
WHERE
fieldname IN ('foo')
AND
fieldname IN ('bar');
Ist aber ungestestet.
mit freundlichen Grüssen
Ulrich
SELECT
*
FROM
tablename
WHERE
fieldname IN ('foo')
AND
fieldname IN ('bar');[/code]
Das funktioniert leider nicht. Da gibt es mir leider garkeinen Eintrag aus.
Hallo!
SELECT
*
FROM
tablename
WHERE
fieldname IN ('foo')
AND
fieldname IN ('bar');
Ein Feld in einem Datensatz kann mit IN() nicht mehr als einer Bedingung entsprechen. Entweder hat fieldname 'foo' oder 'bar'.
Wenn mußt Du mehrere Felder abfragen.
~~~sql
SELECT
> *
FROM
tablename
WHERE
fieldname_1 IN ('foo')
AND
fieldname_2 IN ('bar');
André Laugks