
こちらのページ(https://nslab.hatenablog.com/entry/20121104/MySQL)を参考にして特定カラムの値を1増やすことができたのですが、複数のカラムを同時に1づつ増やすにはどのようにしたらいいでしょうか?
たとえば、pageview と totalview という二つのカラムを1増やすために、下記2つを1つに統合することは可能でしょうか?
UPDATE article SET pageview = pageview + 1 WHERE id = 100;
UPDATE article SET totalview = totalview + 1 WHERE id = 100;
また、UPDATEはSELECTなどに比べて処理速度が遅いとどこかで読んだことがあります。
UPDATEは極力使わない方が良いのでしょうか?
No.3
- 回答日時:
公式の説明を読めるようになりましょう
https://dev.mysql.com/doc/refman/5.6/ja/update.h …
カラム更新はカンマ区切りで複数書けます
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
関係データベースにおける更新処理は、データの一意性を保つ必要があるため、
参照にくらべると時間がかかるのは当然ですので、
UPDATE 文の回数は少ないに越したことはないです。
No.1
- 回答日時:
使用されている教科書や解説書またはWebサイトなのでupdate文のset句の記述方法をよく確認してください。
1つのupdete文の中のset句は1つだけ・・・と説明されていますか? その辺のこです。あと、selectは条件に則した行の抽出・・・つまりは保存されているデータの読み込みです。
対してupdateはデータの書き込み・・・特に既存の値の置き換えです。二次記憶装置への書き込みはトランザクションの終了時ですが、元の値のデータ長さに対し更新する値がそれより長かったり短かったりするとメモリ内の操作であってもちょっと時間を要する処理をします。特にインデックスになている項目に対するupdateの場合は。
昔、データベースエンジンを開発した経験からしますとそんな感じです。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一部のカラムでdistinctし全て...
-
SELECT文で、指定カラム以外の...
-
now()かCURRENT_TIMESTAMPか
-
UNIONする際、片方テーブルしか...
-
カラムとコラムの使い分け
-
SQLでカラムを追加し、条件に合...
-
AUTO_INCREMENTに0はダメ?
-
【SQL】select に ワイルドカー...
-
DBエラーの意味
-
頭に0が付く文字
-
MYSQLで全てのカラムから検索す...
-
構造が異なる二つのテーブルをu...
-
mysql 全文検索で引っかからな...
-
MySQL(5.5)1テーブル内のカラ...
-
ホームページを作ろうと思いま...
-
mysqlの配列データの読み方
-
文字列のカラムを数字と比較したい
-
アドレスブックの登録について
-
日付を一括UPDATE
-
MySQLで複数のカラムの値を1増...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
AUTO_INCREMENTに0はダメ?
-
SQLでカラムを追加し、条件に合...
-
MYSQLで全てのカラムから検索す...
-
now()かCURRENT_TIMESTAMPか
-
カラムとコラムの使い分け
-
MySQLで論理名を取得する方法
-
GREATESTで NULLをスルーする方...
-
【SQL】select に ワイルドカー...
-
エクセルかワードで家系図を作...
-
カラムをコピーして、新規カラ...
-
波形データを格納するデータベース
-
update時にtimestampが更新され...
-
カラム表示の幅
-
アドレスブックの登録について
-
最大2147483647なのに何故int(1...
-
MySQLで先頭にカラムを追加
おすすめ情報