php中用delete出错
$sql="deletefromsystemwheresystem_username='aa'orderbysystem_idasclimit1,1";mysql_que...
$sql="delete from system where system_username = 'aa' order by system_id asc limit 1,1";
mysql_query($sql);
加上limit就错了 怎么改
能不能告诉我 怎么用limit删除第2条记录 展开
mysql_query($sql);
加上limit就错了 怎么改
能不能告诉我 怎么用limit删除第2条记录 展开
5个回答
展开全部
MySQL的delete是支持limit和order的,这点不用质疑。
这是MySQL手册:
单表语法:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
注意:[LIMIT row_count]这部分
你的SQL语句出问题的地方应该在“limit 1,1”这一部分。其实delete支持的limit语法与select里面的limit是有点区别的。select里面想你这么实用没有问题,但是在delete的limit后只能接一个参数,就是你实际要删除的行数。
所以如果username='aa'的行数只有两条的话,SQL语句稍稍改改就行了。
$sql="delete from system where system_username = 'aa' order by system_id DESC limit 1";
这样就可以删除第2条记录了。
如username='aa'的记录行数多余两条的话,只靠你给出的where条件以及order by 和limit是无法实现删除第二条记录的。你需要把范围所以小到两条或一条,补充where条件。
或者是参考其他回答者提供的方法。
拙见,不当之处请指教!
这是MySQL手册:
单表语法:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
注意:[LIMIT row_count]这部分
你的SQL语句出问题的地方应该在“limit 1,1”这一部分。其实delete支持的limit语法与select里面的limit是有点区别的。select里面想你这么实用没有问题,但是在delete的limit后只能接一个参数,就是你实际要删除的行数。
所以如果username='aa'的行数只有两条的话,SQL语句稍稍改改就行了。
$sql="delete from system where system_username = 'aa' order by system_id DESC limit 1";
这样就可以删除第2条记录了。
如username='aa'的记录行数多余两条的话,只靠你给出的where条件以及order by 和limit是无法实现删除第二条记录的。你需要把范围所以小到两条或一条,补充where条件。
或者是参考其他回答者提供的方法。
拙见,不当之处请指教!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete 不支持limit、order。
如果你想删除第二条记录,只能根据比如id或者system_username来删除。
如果你想删除第二条记录,只能根据比如id或者system_username来删除。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete 不支持 limit
用以下这个试试?
set @row_number := 1
delete from(
select *,(@row_number := @row_number + 1) as rowNumber
from system
) as row_num_table
where system_username = 'aa' and rowNumber = '2' order by system_id asc
思路就是大概上述的语句,和SERVER 2005+ 差不多,但是mysql我不熟,语法上或多或少有错,你自己改一下就是了。
用以下这个试试?
set @row_number := 1
delete from(
select *,(@row_number := @row_number + 1) as rowNumber
from system
) as row_num_table
where system_username = 'aa' and rowNumber = '2' order by system_id asc
思路就是大概上述的语句,和SERVER 2005+ 差不多,但是mysql我不熟,语法上或多或少有错,你自己改一下就是了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这行出错 $sum是我上面定义的一个变量 请问 数据库查询语句中能跟变量吗要$delete=
追问
能跟变量 比如
$sql="delete from table where id = '$a' ";
mysql_query($sql);
话说我是提问的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$sql="delete from system where system_username = 'aa' order by system_id asc limit 2";
mysql_query($sql);
mysql_query($sql);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询