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

MySQLは、値が空でない場合にのみ列を更新します。

    Coalesceで試してみてください。

       $query = " UPDATE user 
       SET 
     `Title`       = CASE WHEN `Title`='' or `Title` IS NULL THEN '$title' END, 
     `Description` = CASE WHEN `Description`='' Or `Description` IS NULL THEN '$description' END, 
      `Date`       = CASE WHEN `Date`='' Or Date` IS NULL THEN '$date' END
        WHERE `id` = '".$id."' ";
    

    または:

      $query = " UPDATE user 
      SET 
     `id`         = Coalesce('$id''".$id."' , NULLIF(`id`,'')), 
    `Title`       = Coalesce('$title''".$title."',NULLIF(`Title`,'') ) , 
    `Description` = Coalesce('$description''".$description."' , NULLIF(`Description`,'') ) , 
     `Date`       = Coalesce('$date''".$date."',NULLIF(`Date`,'')) 
     WHERE `id` = '$id''".$id."' ";
    


    1. 最後の行からmysqlテーブルを検索します

    2. MySQL警告1287を修正:「BINARYexpr」は非推奨であり、将来のリリースで削除される予定です

    3. datagridviewからmysqlデータベースに値を挿入する最速の方法は何ですか

    4. 日と月の保存(年なし)