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

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Terokai rangka kerja Kanvas: Untuk memahami apakah rangka kerja Kanvas yang biasa digunakan, contoh kod khusus diperlukan Pengenalan: Kanvas ialah API lukisan yang disediakan dalam HTML5, yang melaluinya kita boleh mencapai kesan grafik dan animasi yang kaya. Untuk meningkatkan kecekapan dan kemudahan melukis, banyak pembangun telah membangunkan rangka kerja Kanvas yang berbeza. Artikel ini akan memperkenalkan beberapa rangka kerja Kanvas yang biasa digunakan dan menyediakan contoh kod khusus untuk membantu pembaca memperoleh pemahaman yang lebih mendalam tentang cara menggunakan rangka kerja ini. 1. Rangka kerja EaselJS Ea

Spring ialah rangka kerja sumber terbuka yang menyediakan banyak anotasi untuk memudahkan dan meningkatkan pembangunan Java. Artikel ini akan menerangkan anotasi Spring yang biasa digunakan secara terperinci dan memberikan contoh kod khusus. @Autowired: Autowired @Autowired anotasi boleh digunakan untuk wayar secara automatik dalam bekas Spring. Apabila kami menggunakan anotasi @Autowired di mana kebergantungan diperlukan, Spring akan mencari kacang yang sepadan dalam bekas dan menyuntiknya secara automatik. Kod sampel adalah seperti berikut: @Auto

Dengan perkembangan Internet, keselamatan data telah menjadi isu serius yang mesti kita ambil perhatian dalam kerja harian kita. Penyulitan menjadi sangat penting apabila ia berkaitan dengan maklumat peribadi atau data perniagaan yang sensitif. Dalam pembangunan PHP, beberapa algoritma penyulitan digunakan secara meluas Mari kita lihat algoritma penyulitan yang biasa digunakan dalam PHP. 1. Pengekodan Base64 Pengekodan Base64 sering digunakan untuk menghantar data binari dalam halaman web atau e-mel, kerana halaman web atau e-mel hanya boleh menghantar data jenis rentetan dan tidak boleh menghantar data binari secara langsung. Base64 ialah penyelesaian

Analisis mendalam mengenai indeks melarikan diri 15 bitcoin teratas: Tinjauan Pasaran untuk 2025 Artikel ini sangat menganalisis lima belas indeks pelarian Bitcoin yang biasa digunakan, di antaranya nisbah Bitcoin RHODL, USDT Pengurusan Kekayaan Semasa dan Indeks Altcoin bermusim telah mencapai indeks melarikan diri pada tahun 2024, menarik perhatian pasaran. Bagaimanakah pelabur harus berurusan dengan potensi risiko? Marilah kita menafsirkan penunjuk ini satu demi satu dan meneroka strategi tindak balas yang munasabah. 1. Nilai semasa ialah 1.21, yang berada dalam julat tunggu-dan-lihat, jadi disyorkan untuk berhati-hati. Pautan ke AHR999 Escape Top Indicator: Tambahan kepada penunjuk penimbunan duit syiling AHR999, digunakan untuk mengenal pasti bahagian atas pasaran. Nilai semasa ialah 2.48, minggu ini

Apakah fungsi yang biasa digunakan dalam bahasa Go? ——Terokai fungsi yang biasa digunakan dan penggunaannya dalam bahasa Go Sebagai bahasa pengaturcaraan taip statik yang popular, bahasa Go digunakan secara meluas dalam pelbagai bidang, seperti pembangunan sisi pelayan, pengaturcaraan rangkaian, pengkomputeran awan, dsb. Dalam bahasa Go, fungsi, sebagai unit organisasi kod asas, adalah bahagian penting dalam program berjalan. Artikel ini akan meneroka fungsi yang biasa digunakan dan penggunaannya dalam bahasa Go untuk membantu pembaca memahami dengan lebih baik ciri teras bahasa ini. 1. Fungsi pengisytiharan dan fungsi panggilan dalam bahasa Go dengan kata kunci "fun

Pangkalan data Oracle ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang menyokong pelbagai jenis data untuk memenuhi keperluan yang berbeza. Apabila menggunakan pangkalan data Oracle, adalah sangat penting untuk memahami jenis data pangkalan data. Artikel ini akan memperkenalkan jenis data yang biasa digunakan dalam pangkalan data Oracle, dengan contoh kod khusus. 1. Jenis data berangka NUMBERNUMBER ialah jenis data berangka yang paling biasa digunakan dalam pangkalan data Oracle, digunakan untuk menyimpan integer atau nombor titik terapung. Jenis data NUMBER boleh menentukan ketepatan

Dunia pembangunan perisian telah berubah secara mendadak dalam jangka masa yang panjang, dan DevOps telah menjadi bahagian penting dalam proses penyampaian program komputer moden. Untuk menyelaraskan proses pembangunan dan pengendalian program komputer, DevOps memupuk budaya kerjasama, penyepaduan berterusan dan penghantaran tanpa henti. Pilihan bahasa pengaturcaraan memainkan peranan penting dalam penggunaan DevOps yang cekap, dan dua pesaing terkenal dalam bidang ini ialah Ruby dan Python. Di sini, kita akan melihat pilihan, populariti dan kes penggunaan Ruby dan Python dalam persekitaran DevOps. Kami akan menyiasat ciri unik, kelebihan dan keburukan mereka untuk membantu anda memutuskan bahasa yang terbaik untuk keperluan DevOps anda. Bahagian 1: Ruby dan Python

Java ialah bahasa pengaturcaraan yang digunakan secara meluas, dan struktur data adalah sebahagian daripada proses pembangunan. Struktur data membantu mengatur dan mengurus data serta meningkatkan kecekapan pelaksanaan program. Di Java, struktur data yang biasa digunakan termasuk tatasusunan, senarai terpaut, tindanan, baris gilir, pepohon, graf, dsb. Artikel ini akan memberikan analisis mendalam tentang struktur data Java yang biasa digunakan ini dan menyediakan contoh kod khusus. 1. Array Array ialah struktur data linear yang boleh menyimpan elemen dari jenis yang sama. Di Java, anda boleh mengisytiharkan menggunakan
