老师,delete from user2 limit 8,3;这句为什么会报错?

老师,delete from user2 limit 8,3;这句为什么会报错?

create table user2(
  id INT unsigned auto_increment key,
  username VARCHAR(20) not null unique comment '编号',
  age TINYINT unsigned not null DEFAULT 18 comment '年龄',
  sex ENUM('男','女','保密') not null DEFAULT '保密' comment '性别',
  addr VARCHAR(20) not null DEFAULT '北京',
  married TINYINT(1) not null DEFAULT 0 comment '0代表未结婚,1代表已婚',
  salary FLOAT(8,2) not null DEFAULT 0 comment '薪水'
)ENGINE=INNODB CHARSET=UTF8;
  insert user2 values(null,'张三',38,'男','上海',0,15000),
  (null,'张三凤',38,'男','上海',0,15000),
  (null,'张子怡',39,'女','北京',1,85000),
  (null,'汪峰',42,'男','深圳',1,95000),
  (null,'刘德华',58,'男','广州',0,115000),
  (null,'吴亦凡',28,'男','北京',0,75000),
  (null,'奶茶妹',18,'女','北京',1,65000),
  (null,'刘嘉玲',36,'女','广州',0,15000);

  update user2 set age=age-10 order by id desc limit 3;
    update user2 set age=age+10 order by id desc limit 3;
      update user2 set age=age-10 limit 3 order by id desc;
insert user2 values(null,'毛不易',45,'男','吉林',0,20000),(null,'关晓彤',22,'男','北京',0,30000),(null,'黄少康',33,'男','上海',1,120000); 
  delete from user2 limit 8,3;

http://img1.sycdn.imooc.com//climg/5f43664809893c0d08470066.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小班 2020-08-24 16:23:35

同学你好,因为在mysql中delete后面是支持limit关键字的,但仅支持单个参数。如果同学想是实现删除后面几条数据,可以尝试从如下思路来尝试:

    1、同学可以尝试使用desc按降序排列(相反的顺序),再来删除前几条数据,比如:

delete from user2 order by id desc limit 3;

    2、可以尝试删除指定的多条数据,比如:

delete from user2 where id in(12,13,14);

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小班 2020-08-24 15:45:32

同学你好,使用delete 语句后加limit,分为两种情况:

1、delete from user2 limit 3;   这样是可以正常执行的。

2、delete from user2 limit 3,8;  这样是不可以的。

这是因为,在语法规定中,delete后面是支持limit关键字的,但仅支持单个参数。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 qq_就是这样_1 #1
    那如果要删除后面几行的信息要用limit怎么处理呢?
    2020-08-24 16:04:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师