sql >> Database teknologi >  >> RDS >> Mysql

Pass nummer som et kolonnenavn i den valgte sætning af SQL

Du vælger en streng-literal værdi '5' for hver række i din tabel:

select 5 from mytable_name;

Og det her fungerer fint. Fordi i SELECT erklæring kan du vælge:

  • Kolonnereference,
  • Bogstavelig værdi som i dit tilfælde.
  • Funktion.
  • værdiudtryk.
  • Vælg udtryk.

Som defineret af standard SQL:

Opdatering:

Men hvis du har en kolonne med et navn, er et tal som i dit tilfælde, skal du undslippe det for at vælge værdierne i det sådan:

 SELECT `143` FROM Table1;

Dette vil markere alle rækkerne i kolonnen 143 .

Men dette:

 SELECT 143 FROM Table1;

Vil vælge strengen literal 143 for hver række fundet i tabellen.

Bemærk at: Hvis det er muligt, så prøv ikke at navngive disse kolonner på denne måde. Det anbefales og en god praksis ikke at gøre dette.

SQL Fiddle Demo

Opdatering 2:

Bemærk, at hvis du vælger 143 eller '143' , eller endda "143" dette vil vælge den bogstavelige værdi 143 ikke kolonnedatoen. Følgende er de samme:

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

Alle disse SELECT s vil ikke vælge dataene i kolonnen, de vil vælge den bogstavelige værdi 143 ikke kolonnedataene. Se denne demo:

Demo

Du skal undslippe kolonnenavnet med de to:

``

Sådan:

SELECT `143` FROM table1;

Ikke:

SELECT '143' FROM table1'

Ligesom hvad jeg gjorde her:

Den rigtige demo



  1. MySQL - SUMMEN af en gruppe af tidsforskelle

  2. tilpasset php-forum - viser nye/ulæste indlæg

  3. Oracle SQL escape-tegn (for et '&')

  4. Vælg flere feltduplikater fra MySQL-databasen