当前位置:数据库 > MySQL >>

求高手帮忙写一条SQL语句(MySql数据库)

表A中只有一个id字段(非自增),该字段下的记录第一行为1,第二行为2,第三行为3… 现在,我想将这个表的后5行记录删除,应该如何写SQL? 如果我想再添加5行记录,应该如何写SQL?(假设已经存在137条数据,那么将插入138,139,140,141,142这五行数据)。
答案:对于你的第一个问题,我写了一个例子,你可以放到数据库里看一下,是不是你想要的结果。
create table testTable
(
	testCL int
)
go
declare @ret int
set @ret=1
while(@ret<138)
begin
	insert into testTable
	values(@ret)
	set @ret=@ret+1
end
delete testTable where testCL in (select top 5 testCL from testTable order by testCL desc)
第二个问题,因为id非自增,所以不能用@@identity这个全局变量获取最近一次插入数据的id,
不过也正因为id不自增,你可以用select count(*) from A 来获取信息条数来对应最新值的id。
或者如果你无法保证count与id的对应,你可以通过在表中加入时间字段以方便获取最后插入的id值。如果硬要sql语法获取的话,我暂时还没想出怎么做。
希望能帮到你。
哦,对了,因为id是int类型 可以通过 select max(id) from A来获取A表中最大的id值,应该也就是最新的id值了,这样就可以控制最新插入数据的id了。

上一个:Mysql 数据库表的问题
下一个:Discuz! X2 用的是sql的数据库 具体是哪个sql呢?mysql4.1? mysql5.0? 还是其他的?

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,