In SQL Server können Bezeichner durch eckige Klammern getrennt werden, z. B.
SELECT [gallons/units] ...
In MySQL können Bezeichner durch Backticks getrennt werden, z. B.
SELECT `gallons/units` ...
(HINWEIS:Wenn MySQL SQL_MODE
enthält ANSI_QUOTES
, dann werden doppelte Anführungszeichen als Trennzeichen für Bezeichner behandelt, ähnlich wie Oracle doppelte Anführungszeichen behandelt; Ohne diese Einstellung werden doppelte Anführungszeichen als Trennzeichen für Zeichenfolgenliterale behandelt. Mit ANSI_QUOTES
eingeschlossen SQL_MODE
, "gallons/units"
wird als Bezeichner (Spaltenname) interpretiert. Ohne ANSI_QUOTES
, wird MySQL es als String-Literal sehen, als ob es in einfache Anführungszeichen eingeschlossen wäre.)
FOLLOWUP:
Soweit ein Fehler "operand should contain only 1 column(s)"
, das ist normalerweise ein Problem mit der Abfragesemantik, nicht mit Escapezeichen für Bezeichner.
Eine Unterabfrage in der SELECT-Liste kann nur einen einzigen Ausdruck zurückgeben, dies würde beispielsweise einen Fehler auslösen:
Query: SELECT 'foo' , ( SELECT 'fee' AS fee, 'fi' AS fi )
Error Code: 1241
Operand should contain 1 column(s)