MySQL

PostgreSQLでIFNULL()

-- MySQL SELECT SUM(IFNULL(zerokamodata,0)) FROM table_name; -- PostgreSQL SELECT SUM(COALESCE(zerokamodata,0)) FROM table_name; COALESCE()って読み方がわからないから覚えられないんだと思って読み方調べたら 「コウアレス」って読むらしいんだけ…

上位〇件だけUPDATEしたい

DATETIME型のカラムがあって、最新〇件だけ更新したいってとき。 LIMIT使えるって発想が全然出てこないのなんなの! UPDATE table_name SET column_name = valuevalue WHERE 1=1 ORDER BY datetime_column DESC LIMIT 100 参考: d.hatena.ne.jp

Error Code: 1205. Lock wait timeout exceeded; try restarting transaction

何でもないUPDATE文実行したらエラー返ってきた。 Error Code: 1205. Lock wait timeout exceeded; try restarting transaction MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.19.5 InnoDB のエラーコードによると 1205 (ER_LOCK_WAIT_TIMEOUT) ロック待…

MySQLでdatetime型の値をUPDATE

CASTでDATETIME型に変換する。 ’2018-03-26’みたいに日付だけ指定すると時刻部分は00:00:00になる。 SELECT CAST('2018-03-26 11:40:00' as DATETIME) FROM DUAL;