5
私は、次のSQL
問い合わせてきた:SQLクエリ - CASE予期しないトークン
SELECT w.id, w.name, m.subject, m.id
FROM users AS w, i_c AS c,
(SELECT _id, u_id, subject FROM i_m WHERE (_id, tmstmp) IN
(SELECT _id, max(tmstmp) FROM i_m GROUP BY _id)) m
WHERE (c.uid_1 = '2' OR c.uid_2 = '2') AND
CASE WHEN c.uid_1 = '2' THEN w.id = c.uid_2
WHEN c.uid_2 = '2' THEN w.id = c.uid_1 END
AND (c.id = m.id) ORDER BY m.tmstmp DESC
それは、第二のサーバ上で、私の最初のサーバー上で正常に動作しますが、私にいくつかの類似した見
Unexpected Token. (near "c" at position 280)
を与えます問題は解決されていません。 問題はCASE
と思われます。
誰でもお手伝いできますか?どんな助けでも大歓迎です。前もって感謝します。
は次のようになりますさらに良い。 (より簡単に最適化できます) – jarlh
MySQLはブール式を実際に0または1にするため、「動作」します。これは他のDBMSでは見たことのないものです。 (私は、2番目のサーバが実際にはMySQLではないことに驚いていません。なぜなら、エラーメッセージはそれに似ていないからです。) –