2017-02-14 4 views
1

私はこれを理解しようと半日を過ごしましたが、まだ困惑しています。私は大きなテーブルを照会しています。ケースENDの後に 'AS'がないときにクエリが実行されます。CASE END ASのサーバーエラーが発生する

これは動作しませんし、コードでサーバーエラーで結果500

SELECT shade,pattern, 
CASE 
WHEN colour = 'red' THEN 'hot' 
WHEN colour = 'orange' THEN 'hot' 
WHEN colour = 'blue' THEN 'cold' 
WHEN colour = 'white' THEN 'cold' 
ELSE 'UKNOWN' 
END AS colourTemp, 
texture 
FROM tableTest 

これは

SELECT shade,pattern, 
CASE 
WHEN colour = 'red' THEN 'hot' 
WHEN colour = 'orange' THEN 'hot' 
WHEN colour = 'blue' THEN 'cold' 
WHEN colour = 'white' THEN 'cold' 
ELSE 'UKNOWN' 
END, 
texture 
FROM tableTest 

私の現在のサーバーは、MySQL 5.6持って動作します。私はmariaDbと、サーバー上で動作していないクエリを試してみましたが、それはエラーなしで動作します

+0

は、クエリを実行してみました*直接*? phpMyAdmin、mysqlコンソールなどのように? –

+0

このクエリはどのように実行していますか? 「サーバーコード500」は何も意味しません。コード内のエラーをチェックして、それらを印刷しようとしますか? –

+1

phpmyadminでクエリを実行しているときにこの問題が発生します。私は今サーバsshで直接試してみましたが、うまくいきます。 phpmyadminで問題が発生しているようです –

答えて

0

(表現の一部であってはならないケース値)、これを試してみてください:

SELECT shade,pattern, 
    CASE colour 
    WHEN 'red' THEN 'hot' 
    WHEN 'orange' THEN 'hot' 
    WHEN 'blue' THEN 'cold' 
    WHEN 'white' THEN 'cold' 
    ELSE 'UKNOWN' 
    END AS colourTemp, 
texture 
FROM tableTest; 
+0

実際には両方とも有効です:https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#operator_case –

関連する問題