TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 21.09.2007, 13:50   #1
TP-Supporter
 
Benutzerbild von papo
 
Registriert seit: Sep 2002
Ort: Münster NRW
papo macht alles soweit korrekt

[SQL] Update mit Daten aus anderer Tabelle wenn WHERE LIKE Bedingung erfüllt ist.


Hallo Tpler,

lange nicht gesehen, und dann gleich so ein schrecklicher Titel ;-)
Vielleicht kann mir ja jemand auf die Sprünge helfen bei folgendem Problem.

Ich muss in einer Tabelle mit Stichwörtern alle Datensätze markieren die bestimmte Wörter enthalten. dafür gibt es eine Spalte die entweder NULL ist oder das bestimmte Wort enthält.

Das Select Statement funktioniert prima mit "WHERE Keywords.keyword LIKE Blacklist.word" und liefert eine Liste aller betroffenen Datensätze.

Jetzt versuche ich das ganze in ein UPDATE zu verbauen um die Spalte "contains" mit dem jeweiligen Wort aus der Blacklist zu füllen. (Keine Angst um die DB, das ganze geht nur in den Export für die weitere Verarbeitung)


Tabelle [Keywords]:
Code:
id | keyword | contains
1, thiskeyword	, 	NULL
4, sexykeyword	, 	NULL
5, goodone	  ,	NULL
...
Tabelle [Blacklist]:
Code:
id | word
1, %sex%
2, %blood%
...
PHP-Code:
UPDATE Keywords
SET K
.contains B.word
FROM Keywords K
Blacklist B WHERE K.keyword LIKE B.word 
Leider wird der Befehl nicht ausgeführt. Alternativ habe ich es noch per Join versucht komme aber nicht weiter.
Mag mir jemand helfen?
Ist "LIKE" hier evtl. ausgeschlossen?
Was passiert wenn mehrere Kombinationen zutreffen?

Viele Grüße,
Paul

PHP Version 5.1.6
MySQL 5.0.19
__________________

Mein Schreibtisch ist offline
papo ist offline   Mit Zitat antworten


Alt 21.09.2007, 16:54   #2
TP-Senior
 
Registriert seit: Nov 2002
Moritz ist auf einem guten Weg
Mhh - sicher bin ich mir nicht, aber kann es sein, dass die Updatesyntax kein FROM einschliesst?
__________________
...zur Zeit außer Betrieb...
Moritz ist offline   Mit Zitat antworten
Alt 21.09.2007, 17:01   #3
TP-Supporter
 
Benutzerbild von papo
 
Registriert seit: Sep 2002
Ort: Münster NRW
papo macht alles soweit korrekt
Hallo Moritz,

hmm, ich hatte es ein paar mal so gelesen aber tatsächlich scheint es ohne zu klappen. Hier die ( / eine) funktionierende Anweisung:
PHP-Code:
UPDATE Keywords kBlacklist b
SET k
.contains b.word
WHERE k
.keyword LIKE b.word 
Vielen Dank und
Viele Grüße Paul

P.S.: Gibt es noch den "Thema erledigt" Button?
__________________

Mein Schreibtisch ist offline

Geändert von papo (21.09.2007 um 17:16 Uhr). Grund: Erledigt
papo ist offline   Mit Zitat antworten
Alt 21.09.2007, 18:08   #4
TP-Supporter
 
Registriert seit: Feb 2005
Driver ist auf einem guten Weg
Mit Subquery müsst es eigentlich gehen, versuch mal:
Code:
UPDATE Keywords 
SET Keywords.contains = (
SELECT
word
FROM
Blacklist
WHERE
Keyword.keyword LIKE Blacklist.word
)
Driver ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[SQL] Update mit Daten aus anderer Tabelle wenn WHERE LIKE Bedingung erfüllt ist. [SQL] Update mit Daten aus anderer Tabelle wenn WHERE LIKE Bedingung erfüllt ist.
« Inhalte aus mySQL Tabelle austauschen | ungewollter Sessionwechsel »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:27 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67