Mysql SELECT 里面的 UPDATE

本教程将介绍Mysql SELECT 里面的 UPDATE的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

Mysql SELECT 里面的 UPDATE 教程 第1张

问题描述

UPDATE forms SET

pos = (SELECT MIN(pos)-1 FROM forms)

WHERE id=$id

这不起作用,错误消息:

**You can't specify target table 'form' for update in FROM clause**

我希望很清楚:我想从同一张表中获取最小的 element-1 并将其分配给 pos

推荐答案

Consp 是对的,它不被支持.但是,有一个解决方法:

UPDATE forms SET
pos = (SELECT MIN(pos)-1 FROM (SELECT * FROM forms) AS x)
WHERE id=$id

可能更快的版本:

UPDATE forms 
SET pos = (SELECT pos-1 FROM (SELECT MIN(pos) AS pos FROM forms) AS x)
where id=$id

好了关于Mysql SELECT 里面的 UPDATE的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。