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