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

MySQL:いくつかの列のMAXまたはGREATESTを取得しますが、フィールドはNULLです

    COALESCEを使用する

    SELECT id, 
       GREATEST(date1, 
         COALESCE(date2, 0),
         COALESCE(date3, 0)) as datemax 
    FROM mytable
    

    更新:この回答は以前にIFNULLを使用していました これは機能しますが、Mike Chamberlainがコメントで指摘したように、COALESCE 実際に推奨される方法です。



    1. 関数名をデータベースに保存して実行します

    2. mysql自然順

    3. Oracleのカーソルを使用してレコードを挿入および更新します

    4. where句でphp変数を使用しているときにMySQLクエリが機能しない