mysql - 在 key 更新时选择最大合并?

标签 mysql sql

我的 sql 查询工作正常,直到我尝试添加绝对最后一行。我怎样才能让那部分工作?

INSERT INTO posts (ssp_order, ssp_id, ssp_ss_id, ssp_c_id) 
SELECT COALESCE(MAX(ssp_order),0)+1 ,
" . $sspid . "," . $ssid . "," . $cid . "
FROM posts
WHERE ssp_ss_id = " . $ssid . "
ON DUPLICATE KEY UPDATE
ssp_status = 0,
ssp_order = SELECT COALESCE(MAX(ssp_order),0)+1 FROM posts

(请不要担心里面变量的安全性)

最佳答案

引用 select 语句中使用的表而不是使用子查询

INSERT INTO posts (ssp_order, ssp_id, ssp_ss_id, ssp_c_id) 
SELECT maxssporder ,sspid,ssid,cid from
(SELECT COALESCE(MAX(ssp_order),0)+1 as maxssporder,
" . $sspid . " as sspid," . $ssid . " as ssid," . $cid . " as cid
FROM posts p
WHERE ssp_ss_id = " . $ssid . ") q
ON DUPLICATE KEY UPDATE
ssp_status = 0,
ssp_order = q.maxssporder

关于mysql - 在 key 更新时选择最大合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46578068/

相关文章:

PHP/MySQL 排序多维数组

java - 注入(inject) Autowiring 的依赖项失败;无法 Autowiring 字段

sql - select distinct(date) 多次返回相同的日期

sql - Django:将数据从一个数据库复制到另一个数据库

sql - 如何删除 MySQL 中每个用户的所有不是最新 N 的行?

sql查询排序但在顶部显示特定值

java - 发现原始类型 : JComboBox and cannot find symbol Class. forName

python - 合并 mysql 表中的字符串,无需额外空格

Java等待Mysql连接

mysql - 错误 1005 : Can't create table