在mysql中delete语句中如何使用limit语句。
用delete from table where userId = 18 limit 4;
可以删除成功。
但是我遇到的问题是删除指定行之后的。比如第10行之后。
用delete from table where userId = 18 limit 10,-1; 却不可行,老是报错。
不明白原因,请各位大哥指教下。

解决方案 »

  1.   

    limit 10,-1
    这种是不合法的,即便是select 语句也过不了你可以用 select count(1) from table where userId = 18; 得到的数字 比如是100,
    那么可以 delete from table where userId = 18 limit 10,90;
      

  2.   

    SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15比如第10行之后。 
    delete from table where userId = 18 limit 9,100000
      

  3.   

    你的SQL语句有问题,用上述代码就OK了,
    LIMIT第一个参数,从第几条记录开始,从0开始算
    第二个参数,取几条记录
      

  4.   

    不知道你们用的是什么版本?我的经历,delete ... limit row_count;不能指定起止行数!
      

  5.   

    测试了一下,确实不能用LIMIT 5,10这种方式删除,用
    create table newtt select * from tt limit 5,10
    生成新表
      

  6.   

    用create table newtt select * from tt limit 5,10 这种方式比较简单、安全