MySQLでレコードが無いならINSERT、あるならUPDATEする、ON DUPLICATE KEY UPDATE構文の使い方
php関連記事
PHPのmb_send_mailでメール送信時に、はしご高「髙」やたつさき「﨑」など旧漢字や丸数字の日本語文字化け対策をする
MySQL/MariaDBのデータをPHP側で暗号化・復号する
phpで10進数と16進数、2進数、8進数の変換と0埋め表記
WordPressの条件分岐タグでページを判別する
PHPでpreg_splitの文字化けを回避しながらテキストを改行ごとに区切ってHTMLメールをつくる
WordPressテーマアップロード時に「辿ったリンクは期限が切れています。 もう一度お試しください。」と表示される
PHPで画像アップロード時に比率を保ったまま縮小する
phpで郵便番号を正規表現で3桁・ハイフン・4桁で出力するfunction
phpで電話番号のハイフンを正規表現で出力するfunction
checkboxテーブルを作成
このようにcheckboxテーブルを作成します。
id(AUTO_INCREMENT)
user_id:ユーザーid
category:カテゴリ
check_id:カテゴリマスタのid
status:選択状態
カラムに対してユニークインデックスを付ける
user_id、category、check_idに対してユニークインデックスを付ける。
SQL
alter table service_plans add unique idx_user_category (user_id, category, check_id);
これで、user_id、category、check_idが一致するレコードがある場合は、statusをUPDATEするし、
一致しない場合は、INSERTするようになる。
ON DUPLICATE KEY UPDATE構文をつかう
INSERT INTO checkbox (user_id, category, check_id, status) VALUES (:user_id, :category, :check_id, :status) ON DUPLICATE KEY UPDATE status = VALUES (status)
コメント