W SQL Server identyfikatory można rozdzielać za pomocą nawiasów kwadratowych, np.
SELECT [gallons/units] ...
W MySQL identyfikatory można rozgraniczać za pomocą backticków, np.
SELECT `gallons/units` ...
(UWAGA:Jeśli MySQL SQL_MODE
zawiera ANSI_QUOTES
, podwójne cudzysłowy są traktowane jako ograniczniki identyfikatorów, podobnie jak Oracle obsługuje podwójne cudzysłowy; bez tego ustawienia podwójne cudzysłowy są traktowane jako ograniczniki dla literałów łańcuchowych. Z ANSI_QUOTES
zawiera SQL_MODE
, "gallons/units"
będzie interpretowany jako identyfikator (nazwa kolumny). Bez ANSI_QUOTES
, MySQL zobaczy go jako literał ciągu, jakby był ujęty w pojedyncze cudzysłowy.)
KONTYNUACJA:
Jeśli chodzi o błąd, "operand should contain only 1 column(s)"
, zwykle jest to problem z semantyką zapytań, a nie z unikaniem identyfikatorów.
Podzapytanie na liście SELECT może zwrócić tylko jedno wyrażenie, na przykład spowoduje to zgłoszenie błędu:
Query: SELECT 'foo' , ( SELECT 'fee' AS fee, 'fi' AS fi )
Error Code: 1241
Operand should contain 1 column(s)