2016-06-15 5 views
0

Hallo Leute, ich habe eine MySQL-Tabelle mit einer Spalte namens ae_url, die Youtube-URLs enthält, und ich möchte alles nach der Youtube-ID entfernen. Zum Beispiel: http://www.youtube.com/watch?v=1B6tWkbso1o&feature=youtu.be entfernen "& feature = youtu.be"wie alles nach youtube id mit mysql entfernen?

Es gibt einige Fälle, wenn eine Playlist nach dem youtube-ID als auch kommt.

Wie kann ich diese Aufgabe mit mysql-Abfragen durchführen? Ich habe die Spalte ae_url zu aktualisieren, die nach

id youtube, indem alles etwas tausend von YouTube-URLs enthält

Dank für Ihre freundliche Unterstützung danken :)

Antwort

1

Es wird Ihnen so ziemlich Fall zu identifizieren, wenn Es gibt eine konsistente Kennung für den Zeitpunkt, zu dem die YouTube-ID endet.

zwei Möglichkeiten wäre:

1) identifizieren, wenn ein Nicht-id Charakter ins Spiel kommt (in diesem Fall „&“) sowie die Länge der Einträge

2) Prüfen Sie, ob die Anzahl der Zeichen in ID konsistent ist

Zum Beispiel 1 vermuten lässt der Indikator die "&"

Charakter ist
ALTER TABLE your_table ADD COLUMN trunc_url string; 
UPDATE your_table SET trunc_url = 
    substring(ae_url, 1, --Start from first character 
    charindex("&",ae_url)-1) --Index end by wherever the "&" symbol is found for cutting off; 

Hoffe das hilft!

0

macht diese Arbeit für Sie:

update tbl set ae_url = substr(ae_url, 1, locate('&', ae_url) - 1) 
where locate('&', ae_url) > 0 

?

+0

Diese fast alle meine youtube Urls entfernt (die gute Nachricht ist, dass ich immer auf Kopien arbeite zuerst) –

+0

Sieht aus wie einige von ihnen haben nicht & in ihnen haben. Versuchen Sie die aktualisierte Antwort (natürlich zuerst auf einer Kopie). –

0

Ich habe endlich die Lösung: UPDATE Videos SET ae_url = LEFT (ae_url, LOCATE ('&', ae_url) - 1) WHERE ae_url like '% &%';

Es hat hervorragend funktioniert

Vielen Dank für Ihre Anregungen

auch