SQL: Tags setzen per SQL-Abfrage auf Überschrift

  • Hallo zusammen.


    Ich bastel mir gerade ein SQL-Statement zusammen um aus Thread-Überschriften Tags zu erzeugen.
    Beispiel Thread: "Mein VW Golf hat einen neuen Motor"
    Beispiel Tag: VW Golf


    Mit folgender Abfrage möchte ich Keywörter in Überschriften suchen und für das jeweilige Topic einen entsprechenden Tag setzen.
    Ich suche also nach allen Threads mit "VW Golf" im Titel und setze dann das Tag mit der Nummer 656 auf die gefundene threadID.


    SQL
    INSERT INTO `TABELLENNAME`.`wcf1_tag_to_object` (`objectID`, `tagID`, `objectTypeID`, `languageID`) 
    VALUES ((SELECT threadID FROM `TABELLENNAME`.`wbb1_thread` WHERE `topic` LIKE '%VW Golf%'), 656, 92, 1) ON DUPLICATE KEY UPDATE tagID=tagID;

    Mein Statement funktioniert allerdings nicht da es mehr als einen Thread gibt, welcher auf das SELECT ausgegeben wird.
    Mein Problem lautet: "#1242 - Subquery returns more than 1 row"
    Was muss ich ändern damit alle gefundenen Thread das Tag gesetzt bekommen?


    Für Tipps bin ich sehr dankbar.


    Grüße
    Mark

  • Ich meine "ich bastel" wort wörtlich. SQL ist keine meiner Kompetenzen. Ich stolpere da so durch um ans Ziel zu kommen ;)
    Frag nicht wie lange ich für das Statement da oben gebraucht habe.


    Gibst Du mir bitte einen Tipp oder Struktur für den Aufbau?
    Wo muss was stehen?

  • Habs nun selbst gelöst.
    Falls es jemand gebrauchen kann:


    SQL
    ### 656 = TagID für "VW Golf"
    
    
    
    
    REPLACE INTO `TABELLENNAME`.`wcf1_tag_to_object` (`objectID`, `tagID`, `objectTypeID`, `languageID`)
    	SELECT threadID, 656, 92, 1
         FROM `wbb1_thread` WHERE `topic` LIKE '%VW Golf%';

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!