【メモ】 Uniqueなキーが存在するTableへのInsert。

Uniqueなキーが存在するテーブルに値を挿入するとき、一旦SELECTして存在を確かめてから挿入する(存在していればUPDATE)か、無理矢理INSERTしてエラーメッセージで重複しているかどうか判断した上でUPDATEするか…なんてことを今までやっていました。 さすがになんか書き方があるんだろうとか思って、とりあえず思いついたのは「IF」とか「EXISTS」とかでググってたんだけども、もっと全然シンプルな話だったんですね。。

重複キーがあれば無視する。
INSERT IGNORE INTO table (f1,f2) VALUES (‘d1′,’d2’);
重複キーがあればアップデート。
INSERT INTO table (f1,f2) VALUES (‘d1′,’d2′) ON DUPLICATE KEY UPDATE f2=’d2’;
 
あああ。穴があったら入りたい。

続きを読む

さくらインターネットにはpdo_mysqlが入ってないか…?

PHP5にしたんで、MySQLとの通信をPDOでやるかと思って変えてみたら、 ドライバが見つかりませんだそうで。 php_info()で見ると、sqliteドライバはあるけど、mysqlはない様子。 そんなバカな。 あれ? peclでインストール > php.ini も画策したけど、 当たり前だけどroot権限じゃないと無理。 ローカル領域にインストールすればできるかなー… まぁとりあえず、PDO自体を保留で。

続きを読む

【メモ】 MySQL5でのUNION内の動作

もの凄い初歩的なことなんですが、 UNIONを使ってクエリを結合するときに関するメモ。 メモるほどのことじゃないかもしれないんですが、 書いて覚えとく、って感じで。 全ての参照元は、マニュアル。 MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 12.2.7.2 UNION 構文 運用は、実は、MySQL5.0.27なんだけど、 5.1マニュアルで大体OKだったので、これで。

続きを読む