mysql delete limit 使用方法詳解

字號(hào):


    mysql delete limit優(yōu)點(diǎn):
    用于DELETE的MySQL唯一的LIMIT row_count選項(xiàng)用于告知服務(wù)器在控制命令被返回到客戶端前被刪除的行的最大值。本選項(xiàng)用于確保一個(gè)DELETE語句不會(huì)占用過多的時(shí)間。您可以只重復(fù)DELETE語句,直到相關(guān)行的數(shù)目少于LIMIT值為止。
    如果DELETE語句包括一個(gè)ORDER BY子句,則各行按照子句中指定的順序進(jìn)行刪除。此子句只在與LIMIT聯(lián)用是才起作用。例如,以下子句用于查找與WHERE子句對(duì)應(yīng)的行,使用timestamp_column進(jìn)行分類,并刪除第一(最舊的)行:
    DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;
    delete limit使用方法:
    單表語法:delete [low_priority] [quick] [ignore] from tbl_name
    [where where_definition]
    [order by ...]
    [limit row_count]
    刪除所有行
    可以在不刪除表的情況下刪除所有的行。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的:
    delete from table_name
    或者:
    delete * from table_name
    下在為刪除指定區(qū)別如0,30
    delete from db limit 0,30
    這里基本我測試都通不過,delete from db limit 30 是可以測試通過的,不知道是不是我的版本問題
    好像limit 后面是指刪除多少條記錄,并沒有給像select 中的起始記錄數(shù)樣!
    然后如果我想limit 30 應(yīng)該是刪除默認(rèn)的,也就跟select * from db limit 0, 30差不多,
    select from `sheet1` where 1 limit 0, 1
    delete from `sheet1` where 1 limit 1
    對(duì)于記錄數(shù)較多的情況,我們一般用limit 100
    delete from tag_list where aid='6666' limit 100;
    delete表連接不支持limit,該如何處理
    delete表連接不支持limit
    mysql> delete test1 from test1 join test2 on test1.id=test2.id limit 10;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 10' at line 1
    mysql>
    ------解決思路----------------------
    delete A FROM test1 A INNER JOIN (SELECT ID FROM test2 limit 10) B
    on A.id=B.id ;