Ersetzen Sie einen bestimmten Wert in einer durch Kommas getrennten Liste mithilfe von SQL
P粉248602298
2023-08-08 17:29:43
<p>Ich muss bestimmte Werte in einer durch Kommas getrennten Liste ersetzen. </p>
<p>Angenommen, ich habe eine Spalte mit dem Namen „Tags“, die mit folgendem Inhalt gefüllt ist: Feiertage, Feiertage 2023, Test. </p>
<p>Ich muss nur das Wort „Feiertage“ durch „Feiertage“ ersetzen, aber ich möchte „Feiertage 2023“ nicht durch „Feiertage 2023“ ersetzen. </p>
<p>Ich habe versucht, die Ersetzungsfunktion und LIKE in der WHERE-Klausel zu verwenden, aber es hat nicht funktioniert. Ich verwende PHP als Backend, weiß aber nicht, wie ich das vermeiden kann. </p>
<p>Das Folgende ist das SQL, das ich verwende:</p><p>
<code>UPDATE Expenses SET Tags = REPLACE(Tags, :original, :replace), Updated_date = :update_date WHERE Id_user = :id_user AND Tags LIKE :original_like</code></p>
<ul>
<li><em>:original</em> enthält die Liste: <strong>Feiertage, Feiertage 2023, Test</strong></li>
<li><em>:replace</em> enthält nur das Wort <strong>Holiday</strong></li>
</ul><p><br /></p>
在您的值之前添加一个前导逗号和空格,然后添加一个尾随逗号-然后将其中的, Holidays, 替换为 , Holiday,。
n在之后再次删除结果中的前导和尾随逗号
使用特定值示例
No Holidays, Holidays, Holidays 2023, Holidays, Test, Holidays
inserted directly instead of getting it from the 直接插入而不是从标签列中获取的假期 column:会导致的结果为: