Remplacer une valeur spécifique dans une liste séparée par des virgules à l'aide de SQL
P粉248602298
2023-08-08 17:29:43
<p>Je dois remplacer des valeurs spécifiques dans une liste séparée par des virgules. </p>
<p>Par exemple, supposons que j'ai une colonne nommée Tags, remplie avec le contenu suivant : Vacances, Vacances 2023, Test. </p>
<p>Je dois seulement remplacer le mot « Vacances » par « Vacances », mais je ne souhaite pas remplacer « Vacances 2023 » par « Vacances 2023 ». </p>
<p>J'ai essayé d'utiliser la fonction replace et LIKE dans la clause WHERE, mais cela n'a pas fonctionné. J'utilise PHP comme backend, mais je ne sais pas comment éviter cela. </p>
<p>Voici le code SQL que j'utilise :</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> contient la liste : <strong>Fêtes, Vacances 2023, Test</strong></li>
<li><em>:replace</em> contiennent uniquement le mot <strong>Holiday</strong></li>
</ul><p><br /></p>
Ajoutez une virgule de début et un espace avant votre valeur, puis ajoutez une virgule de fin - puis remplacez , Holidays, par , Holiday,.
nSupprimez à nouveau les virgules de début et de fin dans les résultats
Exemple d'utilisation d'une valeur spécifique
No Holidays, Holidays, Holidays 2023, Holidays, Test, Holidays
insérée directement au lieu de l'obtenir de la colonne vacances :Le résultat sera :