Ankündigung

Einklappen
Keine Ankündigung bisher.

Suche (MATCH) mit MYSQL

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suche (MATCH) mit MYSQL

    Hallo zusammen
    Ich habe ein Problem mit dem erstellen des Query für eine Suchabfrage. Ich habe 2 Tabellen:
    Article -> id, TITLE, text_id, ...
    Texts -> id, TEXT

    Ist nun einem Artikel kein Text zugewiesen hat dieser die text_id -1 ansonsten die id des Textes. Nun will ich eine Suche erstellen, welche TITLE und TEXT durchsucht. Das ganze mit MATCH.

    Das Problem ist, wenn text_id den Wert -1 hat kann ich ja in meinem Query nich WHERE A.text_id = B.id benutzen, da sonst der TITLE bei diesen auch nicht durchsucht wird....

    Hoffe ihr versteht was ich meine

    EDIT:
    Was ich habe:

    SELECT ba. * ,
    MATCH (
    at.`TEXT`
    )
    AGAINST (
    'Suchwort'
    ) AS mtch1,
    MATCH (
    ba.`TITLE`
    )
    AGAINST (
    'Suchwort'
    ) AS mtch2
    FROM `Article` ba
    INNER JOIN `Texts` at ON ba.`text_id` = at.`id`
    WHERE
    ba.`STATUS` = 'open'
    HAVING mtch1 > 0.001
    OR mtch2 > 0.001

    Hier wird allerdings nur gesucht wenn eine text_id zugewiesen ist (diese nicht -1 ist)

  • #2
    Hallo ruferp,

    soweit ich mich erinnern kann, funktioniert ein Matching über zwei Spalten nur dann funktionieren, wenn die Spalten in der selben Tabelle sind. Die Art der Abfrage finde ich aber interessant. Spontan fällt mir nur ein, dass du eine weitere WHERE-Bedingung einbaust, sprich text_id != '-1'...

    Kommentar

    Lädt...
    X