mysql中的delete和update使用子查询作为条件的时候,子查询需要进一步封装为表,然后指定表别名,否则会提示类似下面的错误。
SQLSTATE[HY000]: General error: 1093 You can't specify target table 'version' for update in FROM clause
通过如下的方式可以实现在delete和update中实现子子查询调用。
delete方式
delete
from tbl_version
where code > 10049
and id in (
select id
from (
select min(id) id
from tbl_version
where code > 10049
group by code
having count(1) >= 2
) tblDelete
);
update方式
UPDATE tbl_version
SET STATUS = 1
WHERE id = 0
AND STATUS IN (1, 2)
AND version IN (
select * from (
SELECT
version
FROM tbl_version
WHERE id = 0
) tbl_Update
)
另:php支持multipart/form-data类型的表单同时提交上传文件和post参数,允许后台通过$_POST获取到页面post的相关参数。