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