MySQL 常用的UPDATE操作_MySQL
概述
测试环境:mysql 5.6.21
步骤
创建测试表
CREATE TABLE `product` (
`proID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品表主键',
`price` decimal(10,2) NOT NULL COMMENT '商品价格',
`type` int(11) NOT NULL COMMENT '商品类别(0生鲜,1食品,2生活)',
`dtime` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`proID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='商品表';
CREATE TABLE `producttype` (
`ID` int(11) NOT NULL COMMENT '商品类别(0生鲜,1食品,2生活)',
`amount` int(11) COMMENT '每种类别商品总金额',
UNIQUE KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品类别资金汇总表'
插入测试数据
INSERT INTO product(price,type,dtime) VALUES(10.00,0,now()),(10.00,1,now()),(10.00,1,now()),(20.00,2,now()),(30.00,3,now());
INSERT INTO producttype(ID) VALUES(1),(2),(3);
SELECT * FROM product;
SELECT * FROM producttype;
单表更新操作
UPDATE product
SET price='20.00',type=0
WHERE proID=2;
关联更新操作
UPDATE producttype,product
SET producttype.amount=product.price
where product.TYPE = producttype.ID AND product.TYPE=1;
1.查询所有字段
INSERT INTO producttype(ID) VALUES(4);
UPDATE producttype
SET producttype.amount= (SELECT ifnull(SUM(product.price),0.00) FROM product WHERE product.TYPE = producttype.ID GROUP BY product.TYPE);
注意:大家注意看到rows matched:4,表示符合条件的记录是4条,实际更新了三条,关联语句默认不去判断里面的关联的实际行。
2.只查询需要更新的字段
UPDATE producttype
SET amount=null;
UPDATE producttype,product
SET producttype.amount=
(SELECT ifnull(SUM(product.price),0.00)
FROM product
WHERE product.TYPE = producttype.ID
GROUP BY product.TYPE)
where product.TYPE = producttype.ID;
改用下面这种方法:Rows matched:3,查询到了符合条件的行是3行,没有查询无关联的行。
总结
mysql的update的关联操作在5.6中后面不能直接接FROM语句,只能UPDATE 所有的连接表然后WHERE,如果之前有事情其它数据库产品的习惯在这里要注意了。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Canvas フレームワークを探索する: 一般的に使用される Canvas フレームワークを理解するには、特定のコード例が必要です。 はじめに: Canvas は HTML5 で提供される描画 API であり、これを通じて豊富なグラフィックスやアニメーション効果を実現できます。描画の効率と利便性を向上させるために、多くの開発者がさまざまな Canvas フレームワークを開発しました。この記事では、一般的に使用される Canvas フレームワークをいくつか紹介し、読者がこれらのフレームワークの使用方法をより深く理解できるように、具体的なコード例を示します。 1.EaselJSフレームワークEa

Spring は、Java 開発を簡素化し、強化するための多くのアノテーションを提供するオープンソース フレームワークです。この記事では、一般的に使用される Spring アノテーションについて詳しく説明し、具体的なコード例を示します。 @Autowired: Autowired @Autowired アノテーションを使用して、Spring コンテナーに Bean を自動的に接続できます。依存関係が必要な場合に @Autowired アノテーションを使用すると、Spring はコンテナー内で一致する Bean を見つけて自動的に注入します。サンプルコードは次のとおりです。

上位15のビットコインエスケープインデックスの詳細な分析:2025の市場見通しこの記事では、15の一般的に使用されるビットコインエスケープインデックスを深く分析します。投資家は潜在的なリスクにどのように対処すべきですか?これらの指標を1つずつ解釈し、合理的な対応戦略を探りましょう。 1.キーインジケーターの詳細な説明AHR999コイン買いだめ指標:AHR999によって作成され、ビットコイン固定投資戦略の支援。現在の値は1.21で、これは待機中の範囲にあるため、注意することをお勧めします。 AHR999へのリンクエスケープトップインジケーター:AHR999コインの貯蔵インジケーターのサプリメントは、市場のトップを識別するために使用されます。現在の値は今週2.48です

インターネットの発展に伴い、データのセキュリティは私たちが日々の業務で注意を払わなければならない深刻な問題となっています。機密性の高い個人情報やビジネス データに関しては、暗号化が特に重要になります。 PHP の開発では、いくつかの暗号化アルゴリズムが広く使用されています。PHP で一般的に使用される暗号化アルゴリズムを見てみましょう。 1. Base64 エンコード Web ページや電子メールでは文字列型データのみを送信でき、バイナリ データを直接送信できないため、Web ページや電子メールでバイナリ データを送信する場合は、Base64 エンコードがよく使用されます。 Base64 は解決策です

Oracle データベースは、さまざまなニーズを満たすために複数のデータ型をサポートする、一般的に使用されるリレーショナル データベース管理システムです。 Oracle データベースを使用する場合、データベースのデータ型を理解することが非常に重要です。この記事では、Oracle データベースで一般的に使用されるデータ型を、具体的なコード例とともに紹介します。 1. 数値データ型 NUMBERNUMBER は、Oracle データベースで最も一般的に使用される数値データ型で、整数または浮動小数点数を格納するために使用されます。 NUMBER データ型では精度を指定できます

Go言語でよく使われる関数は何ですか? ——Go 言語でよく使われる関数とその使い方を探る Go 言語は、人気のある静的型付けプログラミング言語として、サーバーサイド開発、ネットワーク プログラミング、クラウド コンピューティングなど、さまざまな分野で広く使用されています。 Go 言語では、基本的なコード構成単位としての関数は、プログラム実行の重要な部分です。この記事では、読者がこの言語の中核的な機能をよりよく理解できるように、Go 言語で一般的に使用される関数とその使用法について説明します。 1. Go言語での関数宣言とキーワード「fun」による関数呼び出し

ソフトウェア開発の分野は長期にわたって劇的に変化し、DevOps は現代のコンピューター プログラム配信プロセスに不可欠な部分となっています。コンピューター プログラムの開発と運用のプロセスを合理化するために、DevOps はコラボレーション、継続的統合、ノンストップ デリバリの文化を促進します。プログラミング言語の選択は、DevOps を効率的に利用する上で重要な役割を果たします。この分野の 2 つのよく知られた候補は、Ruby と Python です。ここでは、DevOps 環境における Ruby と Python の選択、人気、使用例について見ていきます。 DevOps のニーズに最適な言語を決定できるよう、それぞれの独自の機能、利点、欠点を調査します。セクション 1: Ruby と Python

Java は広く使用されているプログラミング言語であり、データ構造は開発プロセスに不可欠な部分です。データ構造は、データの整理と管理に役立ち、プログラムの実行効率を向上させます。 Java で一般的に使用されるデータ構造には、配列、リンク リスト、スタック、キュー、ツリー、グラフなどが含まれます。この記事では、これらの一般的に使用される Java データ構造を詳細に分析し、具体的なコード例を示します。 1. 配列 配列は、同じ型の要素を格納できる線形データ構造です。 Java では、次のように宣言できます。
