Inhaltsverzeichnis
Szene eins
Angenommen, der Name der zu löschenden Tabelle table_name
lautet, der Name des Namensfelds lautet und die Zeichenfolge name
mit 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 REPLACE
eine Funktion, um die leere Zeichenfolge name
im 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.-01
LIKE
name
-01
-01
name
-01
Szene zwei
name字段的字符串存在"hel-01demo-01"的数据只想替换最后的-01怎么实现呢?
Lösung:
Dies kann mithilfe von REVERSE
Funktionen und Funktionen LOCATE
erreicht werden . Konkrete Schritte sind wie folgt:
- Verwenden Sie
REVERSE
eine Funktion, umname
die Zeichenfolge in einem Feld umzukehren. - Verwenden Sie
LOCATE
eine Funktion, um die Indexposition des letzten Vorkommens in der umgekehrten Zeichenfolge zu ermitteln-01
. - Verwenden Sie
SUBSTR
eine Funktion, um den Teil vor dem letzten Zeichen in der umgekehrten Zeichenfolge abzufangen-01
. - Verwenden Sie die Funktion erneut
REVERSE
, um die abgefangene Zeichenfolge umzukehren und die endgültige Zeichenfolge zu erhalten. - Verwenden Sie
UPDATE
eine Anweisung, umname
die 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 name
Zeichenfolgen, 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
-01
name
-01