web-dev-qa-db-fra.com

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 j'exécute une instruction SELECT avec 'Nom de l'entreprise', cela signifie qu'il n'y a pas de colonne portant le nom 'Business'.

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

76
ehp

Généralement, la première étape consiste à ne pas le faire en premier lieu, mais si cela est déjà fait, vous devez alors citer correctement les noms de vos colonnes:

SELECT `Business Name` FROM annoying_table

Habituellement, 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.

127
tadman

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

Pour par exemple:

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

peut être changé comme

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

15
FatherMathew

Vous devez utiliser backtick au lieu de guillemets simples:

Devis unique - 'Business Name' - Faux

Backtick - `Business Name` - Corriger

11
Saurabh

Pour chacun, mais la bonne façon de coder ceci est de renommer les colonnes insérant un soulignement afin qu'il n'y ait pas de lacunes. Cela garantira zéro erreur lors du codage. Lorsque vous imprimez les noms de colonne pour un affichage public, vous pouvez effectuer une recherche et un remplacement pour remplacer le trait de soulignement par un espace.

3
Valmiki