112 votes

Comment sélectionner un nom de colonne avec un espace dans MySQL

Je travaille sur un projet où un autre développeur a créé une table avec des noms de colonne comme 'Business Name' . C'est un espace entre deux mots. Si je lance un SELECT avec 'Business Name', il est indiqué qu'il n'y a pas de colonne avec le nom 'Business'.

Comment puis-je résoudre ce problème ?

190voto

tadman Points 70178

En général, la première étape consiste à ne pas le faire en premier lieu, mais si c'est déjà le cas, vous devez alors recourir à une citation correcte des noms de vos colonnes :

SELECT `Business Name` FROM annoying_table

En général, ce genre de choses est créé par des personnes qui ont utilisé quelque chose comme Microsoft Access et qui utilisent toujours une interface graphique pour faire leur travail.

24voto

FatherMathew Points 803

Si les guillemets doubles ne fonctionnent pas, essayez d'inclure la chaîne entre crochets.

Par exemple :

SELECT "Business Name","Other Name" FROM your_Table

peut être modifié comme suit

SELECT [Business Name],[Other Name] FROM your_Table

23voto

Saurabh Points 169

Vous devez utiliser le backtick au lieu des guillemets simples :

Citation unique - 'Business Name' - Faux.

Backtick - `Business Name` - Correct

3voto

Valmiki Points 41

Chacun son truc, mais la bonne façon de coder est de renommer les colonnes en insérant des tirets bas pour qu'il n'y ait pas de trous. Cela permet d'éviter toute erreur de codage. Lors de l'impression des noms de colonnes pour l'affichage public, vous pouvez rechercher et remplacer le trait de soulignement par un espace.

2voto

kztd Points 1904

Je suis arrivé ici avec un problème de MS Access.

Les backticks sont bons pour MySQL, mais ils créent des erreurs bizarres, comme "Invalid Query Name : Query1" dans MS Access, pour MS Access uniquement, utilisez des crochets :

Cela devrait ressembler à ceci

SELECT Customer.[Customer ID], Customer.[Full Name] ...

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