mysql update语句的问题
我想要更新某个表排序后靠前的数据,于是写了一个语法:
update dcproduct set pOrder=pOrder+2 order by pOrder desc,id desc limit 6;这个是可以运行的,结果是更新了前六条记录。
后来发现漏了个条件要连表查询于是写成:
update dcproduct a join dcproductsort b on a.pSortid=b.id set pOrder=pOrder+2 where parentid=1 order by a.pOrder desc,id desc limit 6;
结果就报错了,
有没有人知道怎么写啊?
报错信息是什么? 没有必要让大家猜吧。
#1221 - Incorrect usage of UPDATE and ORDER BY
UPDATE中如果是两个表,则不能使用 order / limit
不好意思,我想要解决办法,不是错误原因....
不好意思,我想要解决办法,不是错误原因....
try:
update dcproductsort b join
(select * from dcproduct
order by pOrder desc,id desc limit 6) a
on a.pSortid=b.id set pOrder=pOrder+2 where parentid=1
建议给出你的测试数据,这样比较容易了解你的需要是什么。
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
6楼的大大,报错
#1288 - The target table a of the UPDATE is not updatable
我的数据很简单,product表是产品,productsort是分类,pOrder是产品的排序字段,前台排序按照 排序字段和id字段排,
目前要做的就是把前台显示在最前面的几条数据的pOrder增加2。
先谢谢大家帮助拉,如果不行我只能通过其他程序实现了。
在MYSQL 5。.1。32下测试,SQL语句没有问题
UPDATE lsb3 b JOIN
(SELECT * from lsb2
相关问答:
用jsp做东西给完全不懂mysql的人用,可是备份时只有空文件,这是什么情况,
最好有源代码,谢谢
其实备份的过程我想大概是这样的:
将表A中的数据放到ArrayList中,然后将这个ArrayList中的数据再存到表B中。 ......
一个行业网站,要实现的功能要求为:
一搜索表单可选搜索 产品/资讯/商家,搜索时希望先搜标题后全文,当前的数据量估计3万多,定位期望在百万级也可用。
数据类型为innodb,当前的方法是对关键词进行 ......
我之前导入的数据库,现在删除不了,用了命令行和工具都不行,重启也不行,这是为什么呢?
你是如何删除的?
有什么提示?
问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)
......
MySql中插入当前时间的该怎么写啊?
now()
SQL code:
sql里是:
getdate()
引用
now()
学习
SQL code:
select now();
SQL code:
TODAY()
?
SQL code:
select now();
/* ......
java.sql.SQLException: Incorrect string value: '\xA9z </sp...' for column 'Content' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.j ......