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,如果之前有事情其它数据库产品的习惯在这里要注意了。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Entdecken Sie das Canvas-Framework: Um die häufig verwendeten Canvas-Frameworks zu verstehen, sind spezifische Codebeispiele erforderlich. Einführung: Canvas ist eine in HTML5 bereitgestellte Zeichen-API, mit der wir umfangreiche Grafik- und Animationseffekte erzielen können. Um die Effizienz und den Komfort des Zeichnens zu verbessern, haben viele Entwickler verschiedene Canvas-Frameworks entwickelt. In diesem Artikel werden einige häufig verwendete Canvas-Frameworks vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern ein tieferes Verständnis für die Verwendung dieser Frameworks zu vermitteln. 1. EaselJS-Framework Ea

Spring ist ein Open-Source-Framework, das viele Anmerkungen bereitstellt, um die Java-Entwicklung zu vereinfachen und zu verbessern. In diesem Artikel werden häufig verwendete Spring-Annotationen ausführlich erläutert und spezifische Codebeispiele bereitgestellt. @Autowired: Die Autowired-Annotation @Autowired kann verwendet werden, um Beans im Spring-Container automatisch zu verdrahten. Wenn wir die Annotation @Autowired verwenden, wenn Abhängigkeiten erforderlich sind, findet Spring passende Beans im Container und fügt sie automatisch ein. Der Beispielcode lautet wie folgt: @Auto

Eingehende Analyse des Top 15 Bitcoin Escape Index: Marktaussichten für 2025 Dieser Artikel analysiert zutiefst fünfzehn üblicherweise verwendete Bitcoin Escape Index, darunter das Bitcoin-Rhodl-Verhältnis, das aktuelle Vermögensverwaltungsmanagement von USDT und den Altcoin Seasonal Index haben den Escape Index 2024 erreicht und marktwirtschaftliche Aufmerksamkeit auf sich ziehen. Wie sollten Anleger mit potenziellen Risiken umgehen? Lassen Sie uns diese Indikatoren nacheinander interpretieren und angemessene Antwortstrategien untersuchen. 1. Detaillierte Erläuterung der wichtigsten Indikatoren AHR999 Coin -Hortenindikator: Erstellt von AHR999, Unterstützung von Bitcoin Fixed Investment Strategy. Der aktuelle Wert beträgt 1,21, was sich im Warten- und Seesbereich befindet. Es wird empfohlen, vorsichtig zu sein. Link zu AHR999 Escape Top Indicator: Eine Ergänzung zur AHR999 -Münzhortenindikatorin, die zur Ermittlung der Marktoberseite verwendet wird. Der aktuelle Wert beträgt 2,48 diese Woche

Mit der Entwicklung des Internets ist die Datensicherheit zu einem ernsten Thema geworden, dem wir bei unserer täglichen Arbeit Aufmerksamkeit schenken müssen. Besonders wichtig wird die Verschlüsselung, wenn es um sensible persönliche Informationen oder Geschäftsdaten geht. In der PHP-Entwicklung werden einige Verschlüsselungsalgorithmen häufig verwendet. Werfen wir einen Blick auf die in PHP häufig verwendeten Verschlüsselungsalgorithmen. 1. Base64-Kodierung Die Base64-Kodierung wird häufig zur Übertragung von Binärdaten in Webseiten oder E-Mails verwendet, da Webseiten oder E-Mails nur Daten vom Typ Zeichenfolge und keine Binärdaten direkt übertragen können. Base64 ist eine Lösung

Oracle-Datenbank ist ein häufig verwendetes relationales Datenbankverwaltungssystem, das mehrere Datentypen unterstützt, um unterschiedliche Anforderungen zu erfüllen. Bei der Verwendung einer Oracle-Datenbank ist es sehr wichtig, die Datentypen der Datenbank zu verstehen. In diesem Artikel werden die häufig verwendeten Datentypen in Oracle-Datenbanken anhand spezifischer Codebeispiele vorgestellt. 1. Der numerische Datentyp NUMBERNUMBER ist der am häufigsten verwendete numerische Datentyp in der Oracle-Datenbank und wird zum Speichern von Ganzzahlen oder Gleitkommazahlen verwendet. Der Datentyp NUMBER kann die Genauigkeit angeben

Java ist eine weit verbreitete Programmiersprache und Datenstrukturen sind ein integraler Bestandteil des Entwicklungsprozesses. Datenstrukturen helfen bei der Organisation und Verwaltung von Daten und verbessern die Effizienz der Programmausführung. Zu den in Java häufig verwendeten Datenstrukturen gehören Arrays, verknüpfte Listen, Stapel, Warteschlangen, Bäume, Diagramme usw. Dieser Artikel bietet eine detaillierte Analyse dieser häufig verwendeten Java-Datenstrukturen und stellt spezifische Codebeispiele bereit. 1. Array Array ist eine lineare Datenstruktur, die Elemente desselben Typs speichern kann. In Java können Sie using deklarieren

Welche Funktionen werden in der Go-Sprache häufig verwendet? ——Erkunden Sie häufig verwendete Funktionen und deren Verwendung in der Go-Sprache. Als beliebte statisch typisierte Programmiersprache wird die Go-Sprache häufig in verschiedenen Bereichen verwendet, z. B. in der serverseitigen Entwicklung, Netzwerkprogrammierung, Cloud Computing usw. In der Go-Sprache dienen Funktionen als grundlegende Code-Organisationseinheit und sind ein wichtiger Bestandteil der Programmausführung. In diesem Artikel werden häufig verwendete Funktionen und deren Verwendung in der Go-Sprache untersucht, um den Lesern zu helfen, die Kernfunktionen dieser Sprache besser zu verstehen. 1. Funktionsdeklaration und Aufruffunktionen in der Go-Sprache mit dem Schlüsselwort „fun

Der Bereich der Softwareentwicklung hat sich im Laufe der Zeit dramatisch verändert und DevOps ist zu einem wesentlichen Bestandteil des modernen Bereitstellungsprozesses von Computerprogrammen geworden. Um den Prozess der Entwicklung und des Betriebs von Computerprogrammen zu optimieren, fördert DevOps eine Kultur der Zusammenarbeit, kontinuierlichen Integration und ununterbrochenen Bereitstellung. Die Wahl der Programmiersprache spielt eine wichtige Rolle bei der effizienten Nutzung von DevOps, und zwei bekannte Konkurrenten in diesem Bereich sind Ruby und Python. Hier werfen wir einen Blick auf die Auswahl, Beliebtheit und Anwendungsfälle von Ruby und Python in DevOps-Umgebungen. Wir untersuchen ihre einzigartigen Funktionen, Vor- und Nachteile, um Ihnen bei der Entscheidung zu helfen, welche Sprache für Ihre DevOps-Anforderungen am besten geeignet ist. Abschnitt 1: Ruby und Python
