sql >> Databáze >  >> RDS >> Mysql

Předejte číslo jako název sloupce ve vybraném příkazu SQL

Vybíráte hodnotu řetězce '5' pro každý řádek v tabulce:

select 5 from mytable_name;

A tohle funguje dobře. Protože v SELECT výpis můžete vybrat:

  • Odkaz na sloupec,
  • Doslovná hodnota jako ve vašem případě.
  • Funkce.
  • výraz hodnoty.
  • Vyberte výraz.

Jak je definováno standardním SQL:

Aktualizace:

Pokud však máte ve sloupci, jehož název je číslo, jako ve vašem případě, musíte jej ukončit, abyste v něm mohli vybrat hodnoty takto:

 SELECT `143` FROM Table1;

Tím vyberete všechny řádky ve sloupci 143 .

Ale tohle:

 SELECT 143 FROM Table1;

Vybere řetězcový literál 143 pro každý řádek nalezený v tabulce.

Poznámka: Pokud je to možné, snažte se tyto sloupce takto nepojmenovávat, je doporučeno a osvědčený postup to nedělat.

Ukázka SQL Fiddle

Aktualizace 2:

Všimněte si, že pokud vyberete 143 nebo '143' nebo dokonce "143" tím se vybere doslovná hodnota 143 ne datum sloupce. Následující jsou stejné:

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

Všechny tyto SELECT s nevybere data ve sloupci, vybere doslovnou hodnotu 143 nikoli data sloupce. Podívejte se na toto demo:

Ukázka

Název sloupce musíte escapovat dvěma:

``

Takhle:

SELECT `143` FROM table1;

Ne:

SELECT '143' FROM table1'

Stejně jako to, co jsem udělal zde:

Správná ukázka



  1. MySQL - SELECT WHERE datum <X

  2. mysql zobrazuje dostupné časové úseky a obsazené časové úseky z tabulky

  3. Jak se vyhnout upozornění na kódování při vkládání binárních dat do sloupce blob v MySQL pomocí Pythonu 2.7 a MySQLdb

  4. Získávání dat hierarchie ze samoodkazujících tabulek