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: