sql >> Database >  >> RDS >> Mysql

Geef nummer door als kolomnaam in select statement van Sql

U selecteert een letterlijke tekenreekswaarde '5' voor elke rij in uw tabel:

select 5 from mytable_name;

En dit werkt prima. Omdat in de SELECT verklaring die u kunt selecteren:

  • Kolomreferentie,
  • Letterlijke waarde zoals in jouw geval.
  • Functie.
  • waarde-expressie.
  • Selecteer uitdrukking.

Zoals gedefinieerd door de standaard SQL:

Bijwerken:

Als u echter een kolom heeft waarvan de naam een ​​nummer is, zoals in uw geval, moet u eraan ontsnappen om de waarden erin te selecteren, zoals:

 SELECT `143` FROM Table1;

Dit selecteert alle rijen in de kolom 143 .

Maar dit:

 SELECT 143 FROM Table1;

Selecteert de letterlijke tekenreeks 143 voor elke rij in de tabel.

Let op: Probeer indien mogelijk deze kolommen niet op deze manier een naam te geven, het wordt aanbevolen en een best practice om dit niet te doen.

SQL Fiddle-demo

Update 2:

Houd er rekening mee dat, als u 143 . selecteert, of '143' , of zelfs "143" dit selecteert de letterlijke waarde 143 niet de kolomdatum. De volgende zijn hetzelfde:

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

Al deze SELECT s selecteren de gegevens in de kolom niet, ze selecteren de letterlijke waarde 143 niet de kolomgegevens. Bekijk deze demo:

Demo

U moet de kolomnaam escapen met de twee:

``

Zoals dit:

SELECT `143` FROM table1;

Niet:

SELECT '143' FROM table1'

Zoals wat ik hier deed:

De juiste demo



  1. PostgreSQL-tabelstatistieken analyseren

  2. Alle rijen retourneren met de MAX-waarde in SQL?

  3. mysql selecteer laagste prijs uit multi select

  4. MySQL:is het mogelijk om meerdere rijen te group_concat?