Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Escapando uma barra em um nome SQL? Pode ser escapado, mas o SQL acredita que sejam várias colunas


No SQL Server, os identificadores podem ser delimitados usando colchetes, por exemplo.
SELECT [gallons/units] ...

No MySQL, os identificadores podem ser delimitados usando acentos graves, por exemplo.
SELECT `gallons/units` ...

(NOTA:Se MySQL SQL_MODE inclui ANSI_QUOTES , as aspas duplas são tratadas como delimitadores para identificadores, semelhante à forma como o Oracle trata as aspas duplas; sem essa configuração, aspas duplas são tratadas como delimitadores para literais de string. Com ANSI_QUOTES incluído SQL_MODE , "gallons/units" será interpretado como um identificador (nome da coluna). Sem ANSI_QUOTES , o MySQL o verá como uma string literal, como se estivesse entre aspas simples.)

ACOMPANHAMENTO:

Quanto a um erro "operand should contain only 1 column(s)" , geralmente é um problema com a semântica da consulta, não um problema com identificadores de escape.

Uma subconsulta na lista SELECT pode retornar apenas uma única expressão, por exemplo, isso geraria um erro:
Query: SELECT 'foo' , ( SELECT 'fee' AS fee, 'fi' AS fi )

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