2016-07-14 14 views
0

Dies ist meine erste Frage zu S.O. Also bitte verzeih die Anschuldigung. Ich bin auch nicht so heiß mit SQL, also schätze ich jeden Hinweis zu diesem Thema.SQL Update Text von einer anderen Tabelle

Ich habe auf dem Tisch wp_6_posts die Spalte POST_CONTENT genannt hat und in dieser Spalte auf verschiedenen Reihen ist ein Textstring mit Format:

http://www.domain.com/52 
http://www.domain.com/182 
http://www.domain.com/122 

In einer anderen Tabelle wp_6_pmlca_links gibt es Zeilen mit ID Zahlen, die mit den Zahlen am Ende der obigen URL übereinstimmen. Auch in dieser Tabelle ist die Spalte Afflink, die die URL enthält, die ich brauche (es ist der einzige Inhalt in diesem Feld).

Was ich tun muß, ist die gesamte erste URL in POST_CONTENT mit der URL aus der entsprechenden afflink Reihe zu ersetzen.

Alle/alle Beratung wird sehr geschätzt.

EDIT:

beispielsweise derzeit die POST_CONTENT Spalte enthält den Text der Post für diese Zeile. Es kann mehrere tausend Zeichen lang sein, aber in ihm entweder 1 oder eine Reihe von URLs mit dem synatx oben, in der Regel in einem href-Tag sein:

Text here to <a href="http://www.domain.com/23">Text for link</a> 

Der Link, der in der URL der Nummer entspricht, ist in einer separaten Tabelle wie oben erwähnt gespeichert. Die Zeilenstruktur für das heißt:

ID | slug | URL | 
---------------- 
23 | 23 | http://www.externaldomain.com/link | 

Was ich tun muss, ist die erste URL zu identifizieren, Abfrage die entsprechende URL zu finden und die die erste URL mit dem zweiten ersetzen.

Ich habe keine Ahnung, welche SQL-Syntax der Abfrage Im verwenden leider :(

+1

Plea Zeige Beispiel. (Beispieleingabe und erwartete Ausgabe). Teilen Sie auch die Tabellenstrukturen der zugehörigen Tabellen. – 1000111

+0

Domain-Name bleibt gleich oder was noch? –

+0

Ja die Domain bleibt gleich @yatinparab –

Antwort

0

Nicht sicher über Ihre Daten in wp_6_pmlca_links, zu konstruieren, sondern versuchen, diese (für Mysql):

UPDATE wp_6_posts t1 
JOIN wp_6_pmlca_links t2 
ON t2.ID = substring_index(t1.post_content, '/', -1) 
// For sql server, 'substring_index(t1.post_content, '/', -1)' should be 'right(t1.post_content, len(t1.post_content) - charindex(replace(t1.post_content, '//', '$$'), '/'))' 
SET t1.post_content = t2.afflink 
0

Try This aber diese Abfrage schrieb ich in sQL.

update a 
set a.post_content =b.URL 
from wp_6_posts a 
inner join wp_6_pmlca_links b on convert(int,replace(a.post_content,'http://www.domain.com/',''))=b.id 

Dies wird für mysql funktioniert auch.

Verwandte Themen