sql >> データベース >  >> RDS >> Mysql

Mysqlケースが機能しない

    CASEの後に列名を入力した場合 、WHEN column = valueは使用しないでください 、WHEN valueを使用するだけです 、列をWHENの各値と自動的に比較するため 条項。

    CASE type
        WHEN 1 THEN 'General day'
        ELSE 'Special date'
    END AS type_changed,
    CASE week_day 
       WHEN -1 THEN 'notset' 
       WHEN 1 THEN 'monday' 
       WHEN 2 THEN 'tuesday' 
       WHEN 3 THEN 'wednesday' 
       WHEN 4 THEN 'thursday' 
       WHEN 5 THEN 'friday' 
       WHEN 6 THEN 'saturday' 
       WHEN 7 THEN 'sunday' 
    END AS week_day_mod , 
    

    両方を行う場合は、week_day = (week_day = -1)をテストしています。 、week_day = (week_day = 1) 、など。1 = (1 = 1)であるため、月曜日に機能します。 1 = 1と同等です 、これは本当です。しかし火曜日は2 = (2 = 2) 、これは2 = 1と同等です 、これは誤りです。




    1. PHPでget_result()の代わりにbind_result()を使用する方法

    2. MySQL BLOBフィールドタイプを使用する必要がありますか?

    3. SQLiteException:データベースから読み取るときに認識されないトークン

    4. SQL Server 2016 –ストレッチデータベースの概要