我有一个名为addresses_users的表,它将地址映射到用户。表结构是。
------------------------------------------
id | projectid | crmconfigid | order |
------------------------------------------
1 | 1 | 1 | 1 |
------------------------------------------
2 | 2 | 1 | 3 |
------------------------------------------
3 | 3 | 1 | 2 |
------------------------------------------
这是包含一些现有数据的表结构,我想要做的是,我想在插入新记录时将地址的优先级更新为用户的MAX(顺序)+1。
我正在尝试使用sql
INSERT INTO projectcrm VALUES (1,1, (SELECT MAX(order)+1 FROM projectcrm WHERE projectid = 1));
例如:
INSERT INTO projectcrm SELECT 1, 1, MAX(order) FROM projectcrm WHERE projectid = 1
对我不起作用。
给出错误: 错误代码:1136 列数与第1行的值计数不匹配
也许它不会将MAX(顺序)计为一列。
答案 0 :(得分:1)
请尝试以下查询:
INSERT INTO addresses_users (projectid, crmconfigid, order)
SELECT 1, 1, MAX(order) + 1
FROM addresses_users
WHERE projectid = 1