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

Escapování lomítka v názvu SQL? Může být escapován, ale SQL se domnívá, že se jedná o více sloupců

Na serveru SQL Server lze identifikátory oddělovat pomocí hranatých závorek, např.

SELECT [gallons/units] ...

V MySQL lze identifikátory oddělovat pomocí zpětných značek, např.

SELECT `gallons/units` ...

(POZNÁMKA:Pokud MySQL SQL_MODE zahrnuje ANSI_QUOTES , pak jsou dvojité uvozovky považovány za oddělovače identifikátorů, podobně jako Oracle zpracovává dvojité uvozovky; bez tohoto nastavení jsou dvojité uvozovky zpracovány jako oddělovače pro řetězcové literály. S ANSI_QUOTES zahrnuto SQL_MODE , "gallons/units" bude interpretován jako identifikátor (název sloupce). Bez ANSI_QUOTES , MySQL to uvidí jako řetězcový literál, jako by byl uzavřen v jednoduchých uvozovkách.)

NÁSLEDUJÍCÍ:

Pokud jde o chybu "operand should contain only 1 column(s)" , to je obvykle problém se sémantikou dotazu, nikoli problém s únikem identifikátorů.

Poddotaz v seznamu SELECT může vrátit pouze jeden výraz, například by to vyvolalo chybu:

Query: SELECT 'foo' , ( SELECT 'fee' AS fee, 'fi' AS fi )

Error Code: 1241
Operand should contain 1 column(s)


  1. Stránkovat Wordpress $wpdb dotaz?

  2. Použití spouštěče k simulaci druhého sloupce identity v SQL Server 2005

  3. Jak používat UPDATE z SELECT v SQL Server

  4. Nesprávné uvozovky při použití crosstab() v PostgreSQL