新聞中心
MySQL多表更新應(yīng)該如何實(shí)現(xiàn)呢?這是很多人都提到過(guò)的問(wèn)題,下面就為您詳細(xì)介紹MySQL多表更新和多表刪除的實(shí)現(xiàn)方法,希望對(duì)您能有所幫助。

清河門網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,清河門網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為清河門千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的清河門做網(wǎng)站的公司定做!
MySQL多表更新
在 MySQL 3.23 中,你可以使用 LIMIT # 來(lái)確保只有給定的記錄行數(shù)目被更改。
如果一個(gè) ORDER BY 子句被使用(從 MySQL 4.0.0 開(kāi)始支持),記錄行將以指定的次序被更新。這實(shí)際上只有連同LIMIT 一起才有用。
從 MySQL 4.0.4 開(kāi)始,你也可以執(zhí)行一個(gè)包含多個(gè)表的 UPDATE 的操作:
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
注意:多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。
多表刪除
***個(gè)多表刪除格式從 MySQL 4.0.0 開(kāi)始被支持。第二個(gè)多表刪除格式從 MySQL 4.0.2 開(kāi)始被支持。
僅僅在 FROM 或 USING 子句 之前 列出的表中的匹配記錄行被刪除。效果就是,你要以從多個(gè)表中同時(shí)刪除記錄行,并且同樣可以有其它的表用于檢索。
在表名后的 .* 僅僅是為了兼容 Access:
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id
or
DELETE FROM t1,t2 USING t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id
在上面的情況下,我們僅僅從 t1 和 t2 表中刪除匹配的記錄行。
如果一個(gè) ORDER BY 子句被使用(從 MySQL 4.0.0 開(kāi)始支持), 記錄行將以指定的次序刪除。這實(shí)際上只有連同 LIMIT 一起才有用。示例如下:
DELETE FROM somelog
WHERE user = 'jcole'
ORDER BY timestamp
LIMIT 1
這將刪除匹配 WHERE 子句的,并且最早被插入(通過(guò) timestamp 來(lái)確定)的記錄行。
DELETE 語(yǔ)句的LIMIT rows 選項(xiàng)是 MySQL 特有的,它告訴服務(wù)器在控制權(quán)被返回到客戶端之前可被刪除的***記錄行數(shù)目。這可以用來(lái)確保一個(gè)特定的 DELETE 命令不會(huì)占用太長(zhǎng)的時(shí)間。你可以簡(jiǎn)單地重復(fù)使用 DELETE 命令,直到被影響的記錄行數(shù)目小于 LIMIT 值。
從 MySQL 4.0 開(kāi)始,在 DELETE 語(yǔ)句中可以指定多個(gè)表,用以從一個(gè)表中刪除依賴于多表中的特殊情況的記錄行。然而,在一個(gè)多表刪除中,不能使用 ORDER BY 或 LIMIT。
【編輯推薦】
拆表用的MySQL存儲(chǔ)過(guò)程
深入探討MySQL鎖機(jī)制
詳解MySQL數(shù)據(jù)表類型
MySQL字段中的枚舉
MySQL添加字段和刪除字段
網(wǎng)站名稱:MySQL多表更新和多表刪除的實(shí)現(xiàn)
本文URL:http://fisionsoft.com.cn/article/dppogeg.html


咨詢
建站咨詢
