Mysql
 sql >> Database >  >> RDS >> Mysql

Passa il numero come nome di colonna nell'istruzione select di Sql

Stai selezionando un valore letterale stringa '5' per ogni riga della tabella:

select 5 from mytable_name;

E questo funziona bene. Perché nel SELECT dichiarazione è possibile selezionare:

  • Riferimento colonna,
  • Valore letterale come nel tuo caso.
  • Funzione.
  • espressione di valore.
  • Seleziona espressione.

Come definito dallo standard SQL:

Aggiornamento:

Tuttavia, se hai una colonna con un nome è un numero come nel tuo caso, devi eseguire l'escape per selezionare i valori in essa in questo modo:

 SELECT `143` FROM Table1;

Questo selezionerà tutte le righe nella colonna 143 .

Ma questo:

 SELECT 143 FROM Table1;

Seleziona la stringa letterale 143 per ogni riga trovata nella tabella.

Nota che: Se possibile, cerca di non nominare queste colonne in questo modo, è consigliabile e una buona pratica, non farlo.

Demo di SQL Fiddle

Aggiornamento 2:

Nota che, se selezioni 143 o '143' o anche "143" questo selezionerà il valore letterale 143 non la data della colonna. I seguenti sono gli stessi:

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

Tutti questi SELECT s non selezionerà i dati nella colonna, selezioneranno il valore letterale 143 non i dati della colonna. Guarda questa demo:

Demo

Devi evitare il nome della colonna con i due:

``

In questo modo:

SELECT `143` FROM table1;

Non:

SELECT '143' FROM table1'

Come quello che ho fatto qui:

La demo giusta