Mysql
 sql >> Base de données >  >> RDS >> Mysql

Passer le numéro comme nom de colonne dans l'instruction select de Sql

Vous sélectionnez une valeur littérale de chaîne '5' pour chaque ligne de votre tableau :

select 5 from mytable_name;

Et cela fonctionne bien. Parce que dans le SELECT déclaration que vous pouvez sélectionner :

  • Référence de colonne,
  • Valeur littérale comme dans votre cas.
  • Fonction.
  • expression de valeur.
  • Sélectionnez l'expression.

Tel que défini par le SQL standard :

Mise à jour :

Cependant, si vous avez une colonne dont le nom est un nombre comme dans votre cas, vous devez l'échapper afin d'y sélectionner les valeurs comme ceci :

 SELECT `143` FROM Table1;

Cela sélectionnera toutes les lignes de la colonne 143 .

Mais ceci :

 SELECT 143 FROM Table1;

Sélectionne le littéral de chaîne 143 pour chaque ligne trouvée dans le tableau.

Notez que : Si possible, essayez de ne pas nommer ces colonnes de cette façon, il est recommandé et une bonne pratique de ne pas le faire.

Démo SQL Fiddle

Mise à jour 2 :

Notez que si vous sélectionnez 143 ou '143' , ou même "143" cela sélectionnera la valeur littérale 143 pas la date de la colonne. Les éléments suivants sont identiques :

SELECT 143 FROM Table1;
SELECT '143' FROM Table1;
SELECT "143" FROM Table1;

Tous ces SELECT s ne sélectionnera pas les données dans la colonne, ils sélectionneront la valeur littérale 143 pas les données de la colonne. Voir cette démo :

Démo

Vous devez échapper le nom de la colonne avec les deux :

``

Comme ceci :

SELECT `143` FROM table1;

Non :

SELECT '143' FROM table1'

Comme ce que j'ai fait ici :

La bonne démo