Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Passe o número como um nome de coluna na instrução select do Sql


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:

A demonstração certa