Você está selecionando um valor literal de string
'5'
para cada linha em sua tabela:select 5 from mytable_name;
E isso funciona bem. Porque no
SELECT
declaração você pode selecionar:- Referência de coluna,
- Valor literal como no seu caso.
- Função.
- expressão de valor.
- Selecione a expressão.
Conforme definido pelo SQL padrão:
Atualização:
No entanto, se você tem uma coluna com um nome é um número como no seu caso, você precisa escapar para selecionar os valores nela assim:
SELECT `143` FROM Table1;
Isso selecionará todas as linhas na coluna
143
. Mas isso:
SELECT 143 FROM Table1;
Selecionará a string literal 143 para cada linha encontrada na tabela.
Observe que: Se possível, tente não nomear essas colunas dessa maneira, é recomendável e uma prática recomendada não fazer isso.
Demonstração do SQL Fiddle
Atualização 2:
Observe que, se você selecionar
143
ou '143'
, ou mesmo "143"
isso selecionará o valor literal 143
não a data da coluna. Os seguintes são os mesmos:SELECT 143 FROM Table1;
SELECT '143' FROM Table1;
SELECT "143" FROM Table1;
Todos esses
SELECT
s não selecionarão os dados na coluna, eles selecionarão o valor literal 143
não os dados da coluna. Veja esta demonstração:Demonstração
Você tem que escapar o nome da coluna com os dois:
``
Assim:
SELECT `143` FROM table1;
Não:
SELECT '143' FROM table1'
Como o que eu fiz aqui: