Denken Sie daran, wie Sie ein bestimmtes Zeichen in einem Feld in MySQL löschen

Problembeschreibung:

Problem: Beim Ändern und Löschen der angegebenen Zeichen in der durch Kommas getrennten Zeichenfolge im Projekt können keine anderen Zeichen verwendet werden.

Ursachenanalyse:

Die SQL-Anweisung ist falsch geschrieben. Der dritte Parameter in replace() wird weggelassen und wird weggelassen. Falsche Schreibweise:
    update 表名
    set 字段名= TRIM(BOTH ',' FROM replace(concat(',', 字段名, ','), #{传入的字符}, ''))

In mybatis lautet das korrekte dynamische SQL wie folgt:

    update 表名
    set 字段名= TRIM(BOTH ',' FROM replace(concat(',', 字段名, ','), #{传入的字符}, ','))

ps: Das eingehende Zeichen ist das Zeichen, das gelöscht werden muss. Es ist zu beachten, dass vor und nach diesem Zeichen Kommas gespleißt werden müssen. Wenn das Zeichen 12 in devid in der Lösung gelöscht werden muss, sollte das eingehende Zeichen sein: ',12, ' .


Lösung:

Nach dem Vergleich der folgenden SQL wird ein Syntaxfehler festgestellt.
So löschen Sie ein Zeichen in einem Feld in MySQL.
Wenn der Tabellenname Benutzer lautet, sieht die Tabelle wie folgt aus

Ausweis David
1 1,2,3,12,13,14

Um den Wert 1 im Feld „devid“ des Tabellenbenutzers zu löschen, beachten Sie, dass 12, 13 und 13 nicht gelöscht werden können.

Die SQL-Syntax lautet wie folgt:

update userset devid = trim(both ',' from replace(concat(',', devid, ','), ',1,', ','))

Auszug aus (gelöscht): https://www.cnblogs.com/xiede/p/9369578.html

Supongo que te gusta

Origin blog.csdn.net/qq_37196265/article/details/122062732
Recomendado
Clasificación