日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql update中使用subquery

發(fā)布時間:2023/12/15 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql update中使用subquery 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先,在mysql workbench內(nèi)執(zhí)行update時,缺省是使用安全更新模式的,如果在update sql內(nèi)的where沒有指定id等主鍵條件,會告警并推出執(zhí)行。你可以關(guān)閉安全模式,執(zhí)行如下語句即可。

SET SQL_SAFE_UPDATES=0;

這是mysql中的update 語句的樣式:

# Single-table syntax: UPDATE [LOW_PRIORITY] [IGNORE] table_referenceSET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...[WHERE where_condition][ORDER BY ...][LIMIT row_count]# Multiple-table syntax: UPDATE [LOW_PRIORITY] [IGNORE] table_referencesSET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...[WHERE where_condition]

再說一下update中的限制:
1. update 時,更新的表不能在set和where中用于子查詢
2. update 時,可以對多個表進(jìn)行更新 如:
update table_a a,table_b b set a.b_id=b.id, b.a_id=a.id;
3. update 后面可以做任意的查詢,這個作用等同于from

如下展示一個網(wǎng)友的例子:

mysql> create table IF NOT EXISTS tb (Name varchar(10),Time1 datetime,Time2 date time,Time3 varchar(8),Time4 varchar(8) ); Query OK, 0 rows affected (0.03 sec)

插入一些數(shù)據(jù)后,進(jìn)行帶有子查詢的update操作:

// 這是mysql中update使用子查詢處理 mysql> update tb a,-> (select SEC_TO_TIME(sum(TIME_TO_SEC(time3))) col,max(time1) time,name-> from tb group by DATE_FORMAT(time1, '%Y-%m-%d'))b-> set time4=b.col-> where a.name=b.name and a.time1=b.time; Query OK, 4 rows affected (0.00 sec) Rows matched: 5 Changed: 4 Warnings: 0

又比如:

// update tch, (SELECT (ta.base_pay-80.0) as pay,ta.tch_idFROM t_a taWHERE ta.STATUS = "INTERVIEW"AND ta.result = "PASS"AND ta.base_pay < 19AND ta.tch_id in(SELECT DISTINCTtb.tch_idFROMt_a tb JOIN tch t2 ON tb.tch_id = t2.idWHERE tb.STATUS = "INTERVIEW"AND tb.result = "PASS"AND tb.base_pay < 190AND t2.extra_class_salary IS NULL) ) tmps set tch.extra_class_salary = tmps.pay where tch.id = tmps.tch_id;

總結(jié)

以上是生活随笔為你收集整理的mysql update中使用subquery的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。