mysql错误:1093 You can't specify target table for update in FROM clause
错误代码
UPDATE tb_applicant
SET data_3 = 0
WHERE
id IN (
SELECT
id
FROM
tb_applicant
WHERE
`status` = 1
AND check_status = 1
AND id NOT IN (
SELECT
applicant_id
FROM
tb_test_paper
)
)
原因:MySQL对子查询支持比较薄弱,可以建立缓存表解决,参考博客
更正后的代码
UPDATE tb_applicant
SET data_3 = 0
WHERE
id IN (
SELECT
temp.id
FROM
(select id from tb_applicant
WHERE
`status` = 1
AND check_status = 1
AND id NOT IN (
SELECT
applicant_id
FROM
tb_test_paper
)) temp
)