ODER-Verknüpfungen bei einer Selectabfrage
werbeklaus.
- datenbank
Hallo,
Ich möchte in PHP ganz simpel eine Datenbank abfragen.
Es sollen alle Zeieln abgefragt werden, auf die mindestens eine von drei bedingungen zudrifft. Also nicht sowas wie
WHERE spalte-x LIKE '%egal%'
sondern drei solcher vorgaben in verschiedenen Spalten, wo es reicht wenn eine stimmt...
Wie muss ich diese WHERE-Bedingungen in der SELECT-Abfrage verknüpfen???
Danke, werbeklaus
Moin werbeklaus;
Wie muss ich diese WHERE-Bedingungen in der SELECT-Abfrage verknüpfen???
entweder verstehe ich deine Frage nicht, oder Du hast dir die Antwort bereits in deinem Threadtitel gegeben.
Nach deiner Fragestellung sollte die Antwort lauten: Verknüpfe mit OR
WHERE feld1=TRUE OR feld2=TRUE OR feld3=TRUE
regds
Mike©
yo,
Ich möchte in PHP ganz simpel eine Datenbank abfragen.
so simpel scheint sie nicht zu sein, sonst wärst du ja nicht hier. ;-)
Es sollen alle Zeieln abgefragt werden, auf die mindestens eine von drei bedingungen zudrifft.
Wie muss ich diese WHERE-Bedingungen in der SELECT-Abfrage verknüpfen???
die antworrt liegt in deiner überschrift. alle drei spalten mit oder verknüpfen. wenn mindestens eine davon zutrifft, wird das dbms den datensatz auswählen.
WHERE bedingung1 OR bedingung2 OR bedingung1
Ilja
Moin Ilja,
die antworrt liegt in deiner überschrift. alle drei spalten mit oder verknüpfen. wenn mindestens eine davon zutrifft, wird das dbms den datensatz auswählen.
der Meinug war ich auch, aber ich habe seine Grage noch einmal durchgelesen.
Er bezieht sich nicht auf bestimmte (3)Felder, sondern auf alle Felder, wo eine von 3 Bestimmungen zutreffen soll ;-)
regds
Mike©
yo Mike,
Er bezieht sich nicht auf bestimmte (3)Felder, sondern auf alle Felder, wo eine von 3 Bestimmungen zutreffen soll ;-)
kann ich nicht so ganz rauslesen, aber kann sicherlich zutreffen. am besten er sagt uns noch mal, was genau er meint. ;-)
Ilja
Moin Ilja,
kann ich nicht so ganz rauslesen, aber kann sicherlich zutreffen. am besten er sagt uns noch mal, was genau er meint. ;-)
yep, wenn unsere ersten Antworten nicht zutreffen, wird er sich wohl noch einmal melden. ;-)
regds
Mike©
kann ich nicht so ganz rauslesen, aber kann sicherlich zutreffen. am besten er sagt uns noch mal, was genau er meint. ;-)
Ich habe mehrere Spalten, is ja klar...
Die Tabelle ist zur verwaltung von Fotos da.
Die spalten werden unterschiedlich verwendet... es gibt eine mit einem ganzen Satz, der als erklärung des fotos angezeigt wird.
es gibt eine mit einem stichwort, das als kurzbeschreibung unter dem foto angezeigt wird.
und es gibt eine, in der noch weiter stichwörter zu dem fto sind, die nie angezeigt werden sondern nur der suche dienen.
(natürlich gibts noch mehr spalten, aber nur mit den pfadangaben und so)
jetzt soll eine volltextsuche möglich sein, wo alle drei spalten durchsucht werden, ob das eingegebene irgendwo vorkommt, und zwar in (mindestens) einer der drei spalten.
Moin werbeklaus,
Die spalten werden unterschiedlich verwendet... es gibt eine mit einem ganzen Satz, der als erklärung des fotos angezeigt wird.
es gibt eine mit einem stichwort, das als kurzbeschreibung unter dem foto angezeigt wird.
und es gibt eine, in der noch weiter stichwörter zu dem fto sind, die nie angezeigt werden sondern nur der suche dienen.
(natürlich gibts noch mehr spalten, aber nur mit den pfadangaben und so)
in diesem Fall ist dein Freund eine Kombination mit dem bereits erwähnten OR und für bestimmte Felder LIKE
regds
Mike©
yo Mike,
parallel-antworten werden nicht unter drei bier bestrafft OR zwangsarbeit bei selfhtml....
Ilja
Moin Ilja
parallel-antworten werden nicht unter drei bier bestrafft OR zwangsarbeit bei selfhtml....
AUTSCH.de Das muus doch lauten... nicht unter drei Bier AND drei Weizenbier ORDER BY Kellner ;-)
regds
Mike©
yo,
etwa so ?
SELECT drei_bier, weizenbier
FROM kneipe
WHERE bier = 'voll' AND ladies = 'lecker'
GROUP BY selfhmtler
ORDER BY kellner
Ilja
Moin,
SELECT drei_bier, weizenbier
FROM kneipe
WHERE bier = 'voll' AND ladies = 'lecker'
GROUP BY selfhmtler
ORDER BY kellner
yep in etwa aber man(n) is ja bescheiden:
... AND ladies LIKE '%lecker%' AND chancen > 90 AND Glas <> 'leer'
ich glaube so kommt es langsam hin ;-)
um keinen Bezug zum OP zu verlieren, wäre natürlich auch diese Kombination möglich:
select count(*) as wie_wird_der abend von auswahl
WHERE ladies='lecker' OR koerbchengroesse LIKE '75 C' OR mentalitaet='haste nicht gesehen'
.....
if ( $wie_wird_der_abend == 0 )
echo ' dann ein ander mal';
exit;
regds
Mike©
yo,
jetzt soll eine volltextsuche möglich sein, wo alle drei spalten durchsucht werden, ob das eingegebene irgendwo vorkommt, und zwar in (mindestens) einer der drei spalten.
nun eine volltextsuche ist sicherlich was anderes, aber so wie du es beschreibst geht das über OR, so wie Mike es gesagt hat, halt WHERE spalte1 LIKE '%blalbla%' OR spalte2 LIKE '%blalbla%'....
Ilja
hi,
nun eine volltextsuche ist sicherlich was anderes
wäre sie denn hier nicht vielleicht trotzdem angebracht?
FULLTEXT-index über alle drei spalten, und dann AGAINST suchwort MATCHen lassen ...
gruß,
wahsaga
yo,
wäre sie denn hier nicht vielleicht trotzdem angebracht?
das kann durch aus sein. ich meinte mehr, was er macht ist weniger eine volltextsuche, was er will sicherlich schon. zuvor würde ich mir noch mal das daten-design zur brust nehmen, bevor ich das über drei spalten mache. eventuell würde es sich lohnen, es umzugestalten und mit redundanz zu arbeiten.
Ilja
Moin,
das kann durch aus sein. ich meinte mehr, was er macht ist weniger eine volltextsuche, was er will sicherlich schon. zuvor würde ich mir noch mal das daten-design zur brust nehmen, bevor ich das über drei spalten mache. eventuell würde es sich lohnen, es umzugestalten und mit redundanz zu arbeiten.
ist deine Tastatur defekt, Batterie leer oder SHIFT Taste unauffindbar?
regds
Mike©
yo,
ist deine Tastatur defekt, Batterie leer oder SHIFT Taste unauffindbar?
mehr ein dummer anschlag meiner tastatur, da wird schon mal ein buchstabe verschlugt. was die shift taste betrifft, so schreibe ich sehr gerne alles klein....
Ilja
Moin,
was die shift taste betrifft, so schreibe ich sehr gerne alles klein....
das ist anstrengend zu lesen. Ich bin kein Moralapostel, aber deine Faulheit empfinde ich dann doch als unhöflich.
In diesem Sinne; Yo ;-)
regds
Mike©
Ich möchte in PHP ganz simpel eine Datenbank abfragen.
so simpel scheint sie nicht zu sein, sonst wärst du ja nicht hier. ;-)
ja, fast simpel :-)
Es sollen alle Zeieln abgefragt werden, auf die mindestens eine von drei bedingungen zudrifft.
Wie muss ich diese WHERE-Bedingungen in der SELECT-Abfrage verknüpfen???die antworrt liegt in deiner überschrift. alle drei spalten mit oder verknüpfen. wenn mindestens eine davon zutrifft, wird das dbms den datensatz auswählen.
WHERE bedingung1 OR bedingung2 OR bedingung1
Eigentlich hab ich des probiert, und da hats net geklappt... seid ihr euch da sicher??? Aber ich probiers mal...