MySQL

MySQLで日別集計

日別でデータが何件あるか?とか出す場面が最近よくある。 そんなときのSQL。 CREATE TABLE `histories` ( `id` int(10) NOT NULL AUTO_INCREMENT, `user_id` int(10) NOT NULL, `created` datetime NOT NULL, `updated` datetime NOT NULL, PRIMARY KEY (`i…

MySQLでRENAME TABLE

RENAME TABLE テーブル名を変更する。 RENAME TABLE 変更前のテーブル名 TO 変更後のテーブル名 普段使わないからすっかり忘れてた。 ユーザさんに公開してる環境で、必要ないテーブルをDROP TABLEすることになった。 いきなりDROP TABLEすると何か予期せぬ…

MySQLでCREATE TABLE

CREATE TABLEするときに、ASを使えることをはじめて知った。 CREATE TABLE user_using_accessories_0310 AS SELECT * FROM user_using_accessories;user_using_accessoriesテーブルの中身がuser_using_accessories_0310テーブルにそのままコピーされるみたい…

MySQLのDUPLICATE

例えばユーザーのプロフィール情報を保存しておくuser_profilesテーブルに対して、 ・新規登録ならばINSERT ・プロフィール更新ならばUPDATE するとしよう。 user_profiles id name intro 1 hoge こんにちは ①登録したいユーザーのデータがuser_profilesに存…

MySQLでTRUNCATE

テーブルの中を空にする方法。DELETE文を使う DELETE FROM テーブル名;TRUNCATE文を使う TRUNCATE TABLE テーブル名DELETEは行を1行ずつ削除しているのに対して、 TRUNCATEはテーブルをDROPして、再作成しているらしいです。 行が多くなるとDELETEではアクセ…

MySQLでバルクインサート

ひとつのINSERT文で複数のデータを一気にいれる方法。 INSERT INTO テーブル名 (num, created, updated) VALUE (1, NOW(), NOW()), (2, NOW(), NOW()), (3, NOW(), NOW()), ・・・ (10, NOW(), NOW());データのセットをカンマ区切りで指定する。機能自体は知…