1.フィールドデクリメント
UPDATE `table_name` SET `total`=IF(`total` < 1, 0, `total`-1) WHERE `id` = 1;
我々は、フィールドの減算を行う際に一般的に外部に価値判断を必要とします
これはまた、クエリ外部値決意を排除するエラーが最大又は場合なり、合計フィールド符号なしオーバーフロー値が0で防止することができます
サブクエリを使用して2. UPDATEのSETデータ
UPDATE `bz_xs_chapter` AS c,
(SELECT COUNT(*) AS total FROM `bz_xs_chapter` WHERE `bookId` = 22042) AS c1,
(SELECT COUNT(*) AS total FROM `bz_xs_tome` WHERE `bookId` = 22372) AS c2
SET
`c`.`name`=`c1`.`total`,
`c`.`words`=`c2`.`total`
WHERE `c`.`id` = 2889820
フィールドの値によって、複数のサブクエリこのアップデートでは、効率が非常に高いバーです
ハイ3. COUNT(*)効率
前に関連する記事をたくさん見て、いくつかは、使用COUNT(ID)高効率を言って、それぞれの側は理由を持っているようだが、彼らはテストします。
270Wデータ、データテーブルの350メガバイトのサイズ、よりCOUNT(*) COUNT(IDの少なくとも10または100倍の速さ)
ます。https://my.oschina.net/zhouz/blog/213088で再現