werbeklaus.: ODER-Verknüpfungen bei einer Selectabfrage

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

  1. 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©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
  2. 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

    1. 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©

      --
      Freunde kommen und gehen. Feinde sammeln sich an.
      1. 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

        1. 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©

          --
          Freunde kommen und gehen. Feinde sammeln sich an.
        2. 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.

          1. 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©

            --
            Freunde kommen und gehen. Feinde sammeln sich an.
            1. yo Mike,

              parallel-antworten werden nicht unter drei bier bestrafft OR zwangsarbeit bei selfhtml....

              Ilja

              1. 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©

                --
                Freunde kommen und gehen. Feinde sammeln sich an.
                1. yo,

                  etwa so ?

                  SELECT drei_bier, weizenbier
                  FROM kneipe
                  WHERE bier = 'voll' AND ladies = 'lecker'
                  GROUP BY selfhmtler
                  ORDER BY kellner

                  Ilja

                  1. 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©

                    --
                    Freunde kommen und gehen. Feinde sammeln sich an.
          2. 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

            1. 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

              --
              Rest in peace, Dimbag!
              #
              "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
              1. 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

                1. 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©

                  --
                  Freunde kommen und gehen. Feinde sammeln sich an.
                  1. 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

                    1. 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©

                      --
                      Freunde kommen und gehen. Feinde sammeln sich an.
    2. 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...