SQL Serverでは、識別子は角かっこを使用して区切ることができます。例:
SELECT [gallons/units] ...
MySQLでは、識別子はバッククォートを使用して区切ることができます。例:
SELECT `gallons/units` ...
(注:MySQL SQL_MODE
の場合 ANSI_QUOTES
が含まれています 、その後、二重引用符は、Oracleが二重引用符を処理する方法と同様に、識別子の区切り文字として扱われます。この設定がない場合、二重引用符は文字列リテラルの区切り文字として処理されます。 ANSI_QUOTES
を使用 含まれているSQL_MODE
、"gallons/units"
識別子(列名)として解釈されます。 ANSI_QUOTES
なし 、MySQLは、一重引用符で囲まれているかのように、文字列リテラルとして認識します。)
フォローアップ:
エラー"operand should contain only 1 column(s)"
に関する限り 、これは通常、クエリセマンティクスの問題であり、識別子のエスケープの問題ではありません。
SELECTリストのサブクエリは、単一の式のみを返すことができます。たとえば、これはエラーをスローします:
Query: SELECT 'foo' , ( SELECT 'fee' AS fee, 'fi' AS fi )
Error Code: 1241
Operand should contain 1 column(s)