替换使用SQL的逗号分隔列表中的特定值
P粉248602298
2023-08-08 17:29:43
<p>我需要在逗号分隔的列表中替换特定的值。</p>
<p>例如,假设我有列名为Tags的列,填充如下内容:Holidays, Holidays 2023, Test。</p>
<p>我只需要将单词'Holidays'替换为'Holiday',但是我不希望将'Holidays 2023'替换为'Holiday 2023'。</p>
<p>我尝试使用replace函数和WHERE子句中的LIKE,但是它不起作用。我正在使用PHP作为后端,但是我不知道如何避免这种情况。</p>
<p>以下是我使用的SQL:</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> contain the list: <strong>Holidays, Holidays 2023, Test</strong></li>
<li><em>:replace</em> contain only the word <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:会导致的结果为: