174 votes

Échapper au caractère esperluette dans une chaîne SQL

J'essaie d'interroger une certaine ligne par son nom dans ma base de données sql et elle contient une esperluette. J'ai essayé de définir un caractère d'échappement puis d'échapper à l'esperluette, mais pour une raison quelconque, cela ne fonctionne pas et je ne sais pas exactement quel est mon problème.

Set escape '\'
    select * from V1144engine.T_nodes where node_id in(
    select node2_id from V1144engine.T_edges where node1_id in(
    select node2_id from V1144engine.T_edges where node1_id in(
    select node2_id from V1144engine.T_edges where node1_id = 
      (select node_id from V1144engine.T_nodes where node_name = 'Geometric Vectors \& Matrices')))
    and edge_type_id = 1)
    and node_type_id = 1
    and node_id in (
    select node2_id from V1144engine.T_edges where node1_id =
      (select node_id from V1144engine.T_nodes where node_name = 'Algebra II')
    and edge_type_id = 2);

Bien que cette solution soit similaire à cette question les problèmes sont posés de manière très différente. Ils peuvent finir par avoir la même solution, mais cela ne signifie pas que les questions sont les mêmes.

-1voto

Omar Valerio Points 33

Je sais que ça craint. Aucune des choses ci-dessus ne fonctionnait vraiment, mais j'ai trouvé une solution. Veuillez faire très attention à utiliser des espaces entre les apostrophes [ ' ], sinon elles seront échappées.

SELECT 'Hello ' '&' ' World';

Hello & World

Vous êtes les bienvenus ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X