Maison >base de données >tutoriel mysql >Comment échapper correctement aux esperluettes dans les requêtes SQL ?

Comment échapper correctement aux esperluettes dans les requêtes SQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-12 18:13:44246parcourir

How to Properly Escape Ampersands in SQL Queries?

Gestion des esperluettes dans les requêtes SQL

Lors de l'interrogation de bases de données, il est crucial d'échapper correctement les esperluettes (&) dans les critères de recherche. Un problème courant survient lorsque vous essayez de récupérer des données contenant des esperluettes dans les noms de champs.

Par exemple, directement en utilisant :

<code class="language-sql">node_name = 'Geometric Vectors \& Matrices'</code>

pourrait échouer. Une méthode plus fiable consiste à utiliser le code ASCII pour l'esperluette :

<code class="language-sql">node_name = 'Geometric Vectors ' || chr(38) || ' Matrices'</code>

Ici, chr(38) représente le caractère esperluette, garantissant qu'il est traité comme une valeur de chaîne littérale. Cette approche s'est avérée efficace.

Une autre option utilise l'opérateur LIKE et un caractère générique :

<code class="language-sql">node_name LIKE 'Geometric Vectors _ Matrices'</code>

Cela remplace l'esperluette par un trait de soulignement (_), qui agit comme un caractère générique correspondant à n'importe quel caractère. Bien que cela puisse donner un faux positif si un autre enregistrement a un caractère différent à cette position, cela est généralement peu probable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn