sql >> Base de Datos >  >> RDS >> Mysql

Pase el número como nombre de columna en la declaración de selección de Sql

Está seleccionando un valor literal de cadena '5' para cada fila en su tabla:

select 5 from mytable_name;

Y esto funciona bien. Porque en el SELECT declaración que puede seleccionar:

  • Referencia de columna,
  • Valor literal como en su caso.
  • Función.
  • expresión de valor.
  • Seleccione la expresión.

Tal como lo define el SQL estándar:

Actualización:

Sin embargo, si tiene una columna con un nombre que es un número como en su caso, debe escaparlo para seleccionar los valores de esta manera:

 SELECT `143` FROM Table1;

Esto seleccionará todas las filas en la columna 143 .

Pero, esto:

 SELECT 143 FROM Table1;

Seleccionará el literal de cadena 143 para cada fila encontrada en la tabla.

Tenga en cuenta que: Si es posible, intente no nombrar estas columnas de esta manera, se recomienda y es una buena práctica no hacerlo.

Demostración de SQL Fiddle

Actualización 2:

Tenga en cuenta que, si selecciona 143 o '143' , o incluso "143" esto seleccionará el valor literal 143 no la fecha de la columna. Los siguientes son iguales:

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

Todos estos SELECT s no seleccionará los datos en la columna, seleccionará el valor literal 143 no los datos de la columna. Vea esta demostración:

Demostración

Tienes que escapar del nombre de la columna con los dos:

``

Así:

SELECT `143` FROM table1;

No:

SELECT '143' FROM table1'

Me gusta lo que hice aquí:

La demostración correcta