sql >> Base de Datos >  >> RDS >> Mysql

¿Escapar de una barra diagonal en un nombre SQL? Se puede escapar, pero SQL cree que son varias columnas.

En SQL Server, los identificadores se pueden delimitar mediante corchetes, por ejemplo,

SELECT [gallons/units] ...

En MySQL, los identificadores se pueden delimitar usando acentos graves, por ejemplo,

SELECT `gallons/units` ...

(NOTA:si MySQL SQL_MODE incluye ANSI_QUOTES , las comillas dobles se tratan como delimitadores de identificadores, de forma similar a como Oracle maneja las comillas dobles; en ausencia de esa configuración, las comillas dobles se manejan como delimitadores para los literales de cadena. Con ANSI_QUOTES incluido SQL_MODE , "gallons/units" se interpretará como un identificador (nombre de columna). Sin ANSI_QUOTES , MySQL lo verá como una cadena literal, como si estuviera entre comillas simples).

SEGUIMIENTO:

En cuanto a un error "operand should contain only 1 column(s)" , eso suele ser un problema con la semántica de consulta, no un problema con los identificadores de escape.

Una subconsulta en la lista SELECT puede devolver solo una sola expresión, por ejemplo, esto generaría un error:

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

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