Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何按行号顺序删除Mysql表中的特定行?_Mysql_Sql_Sql Delete_Delete Row - Fatal编程技术网

如何按行号顺序删除Mysql表中的特定行?

如何按行号顺序删除Mysql表中的特定行?,mysql,sql,sql-delete,delete-row,Mysql,Sql,Sql Delete,Delete Row,这里我正在使用angular中的一个内容库,其中一个delete函数调用API从存储文件路径的DB中删除一个具有索引(i)的图像文件。但问题是DB的id是自动递增的,并声明为主键如何使用索引I=4删除ID为17的eg行的特定行? 要删除特定行的DB如下所示 mysql> select * from ezign.t_content_library; +----+---------------------------------------------+--------------------

这里我正在使用angular中的一个内容库,其中一个delete函数调用API从存储文件路径的DB中删除一个具有索引(i)的图像文件。但问题是DB的id是自动递增的,并声明为主键如何使用索引I=4删除ID为17的eg行的特定行?

要删除特定行的DB如下所示

mysql> select * from ezign.t_content_library;
+----+---------------------------------------------+-------------------------------------------------------------+---------------+
| id | content_name                                | content_path                                                | created_time  |
+----+---------------------------------------------+-------------------------------------------------------------+---------------+
| 14 | gayathri-sri-ptbKY_b1ROc-unsplash.jpg       | /assets/content/gayathri-sri-ptbKY_b1ROc-unsplash.jpg       | 1597082730561 |
| 15 | nathan-anderson-UhagOo7IOyc-unsplash.jpg    | /assets/content/nathan-anderson-UhagOo7IOyc-unsplash.jpg    | 1597131503584 |
| 16 | melnychuk-nataliya-8J6uuvsdj-4-unsplash.jpg | /assets/content/melnychuk-nataliya-8J6uuvsdj-4-unsplash.jpg | 1597141241146 |
| 17 | jo-jo-mPM-x0zPhok-unsplash.jpg              | /assets/content/jo-jo-mPM-x0zPhok-unsplash.jpg              | 1597141406728 |
+----+---------------------------------------------+-------------------------------------------------------------+---------------+
是否有类似的代码
从t\U内容库中删除,其中………..?

您可以使用
行编号()
加入

delete cl
    from ezign.t_content_library cl join
         (select cl.*, row_number() over (order by id) as seqnum
          from ezign.t_content_library cl
         ) cl2
         on cl2.id = cl.id
    where cl2.seqnum = 4;
或者,更有效地:

delete cl
    from ezign.t_content_library cl join
         (select cl.*
          from ezign.t_content_library cl
          order by id
          limit 1 offset 3  -- 3 = 4 - 1
         ) cl2
         on cl2.id = cl.id;

不幸的是,
DELETE
允许
限制
,但不允许使用
偏移量
,因此我认为有必要使用
加入

您可以通过此查询获得要删除的
id

select id 
from t_content_library 
order by id limit 3, 1
LIMIT
之后的数字
3
表示跳过3行,数字
1
表示返回跳过的3行之后的1行,因此返回第4行的
id

您可以在
DELETE
语句中使用上述查询,如下所示:

delete
from t_content_library
where id = (select id from (select id from t_content_library order by id limit 3, 1) t);
请参阅。
结果:


看看mysql的行号
| id  | content_name                                | content_path                                                | created_time  |
| --- | ------------------------------------------- | ----------------------------------------------------------- | ------------- |
| 14  | gayathri-sri-ptbKY_b1ROc-unsplash.jpg       | /assets/content/gayathri-sri-ptbKY_b1ROc-unsplash.jpg       | 1597082730561 |
| 15  | nathan-anderson-UhagOo7IOyc-unsplash.jpg    | /assets/content/nathan-anderson-UhagOo7IOyc-unsplash.jpg    | 1597131503584 |
| 16  | melnychuk-nataliya-8J6uuvsdj-4-unsplash.jpg | /assets/content/melnychuk-nataliya-8J6uuvsdj-4-unsplash.jpg | 1597141241146 |