Löschen oder ersetzen Sie den Wert einer Spalte in der SQL-Tabelle

Inhaltsverzeichnis

Szene eins

Angenommen, der Name der zu löschenden Tabelle table_namelautet, der Name des Namensfelds lautet und die Zeichenfolge namemit der Endung „muss gelöscht werden“ lautet , können Sie die folgende SQL-Anweisung verwenden:-01-01

UPDATE table_name SET name = REPLACE(name, '-01', '') WHERE name LIKE '%-01';

Diese SQL-Anweisung verwendet REPLACEeine Funktion, um die leere Zeichenfolge nameim Feld zu ersetzen, und verwendet eine Bedingung, um die im Feld enthaltenen Datenzeilen herauszufiltern . Nach der Ausführung dieser SQL-Anweisung werden alle Datenzeilen, die die Felder enthalten, gelöscht.-01LIKEname-01-01name-01

Szene zwei

name字段的字符串存在"hel-01demo-01"的数据只想替换最后的-01怎么实现呢?

Lösung:
Dies kann mithilfe von REVERSEFunktionen und Funktionen LOCATEerreicht werden . Konkrete Schritte sind wie folgt:

  1. Verwenden Sie REVERSEeine Funktion, um namedie Zeichenfolge in einem Feld umzukehren.
  2. Verwenden Sie LOCATEeine Funktion, um die Indexposition des letzten Vorkommens in der umgekehrten Zeichenfolge zu ermitteln -01.
  3. Verwenden Sie SUBSTReine Funktion, um den Teil vor dem letzten Zeichen in der umgekehrten Zeichenfolge abzufangen -01.
  4. Verwenden Sie die Funktion erneut REVERSE, um die abgefangene Zeichenfolge umzukehren und die endgültige Zeichenfolge zu erhalten.
  5. Verwenden Sie UPDATEeine Anweisung, um namedie ursprüngliche Zeichenfolge im Feld durch die endgültige Zeichenfolge zu ersetzen.

Die SQL-Anweisung lautet wie folgt:

UPDATE table_name SET name = CONCAT(REVERSE(SUBSTR(REVERSE(name), LOCATE('-01', REVERSE(name)) + 2)), '') WHERE name LIKE '%-01';

Diese SQL-Anweisung ersetzt die letzte Zeichenfolge aller nameZeichenfolgen, die im Feld mit enden , und andere Teile sind davon nicht betroffen. Bitte beachten Sie, dass diese SQL-Anweisung keine Wirkung hat, wenn das Feld nicht vorhanden ist .-01-01-01name-01

Guess you like

Origin blog.csdn.net/zhoqua697/article/details/131393571