我有一个名为 productcategory 的表我想在列 category_name 和 parent_id 中插入两个静态值,并且需要插入列 sort_order ,内部选择查询生成的值
INSERT INTO productcategory(category_name,parent_id,sort_order)
values('Flowers',0,(select MAX(sort_order)+1 from productcategory where parent_id=0))
SQL查询无法正常工作
在此先感谢
答案 0 :(得分:1)
您无法从尝试更新或插入的子查询中的表格中进行选择。
据我所知,这可以通过使用下面的SET
方法来实现。
SELECT @maxSortOrder := IFNULL(MAX(sort_order),0)+1 FROM productcategory WHERE parent_id=0;
INSERT INTO productcategory(category_name,parent_id,sort_order) VALUES('Flowers',0,@maxSortOrder);
这可能会对你有帮助。
答案 1 :(得分:1)
它应该像这样工作:
INSERT INTO productcategory(category_name,parent_id,sort_order)
SELECT 'Flowers', 0, MAX(sort_order)+1
FROM productcategory
WHERE parent_id = 0
答案 2 :(得分:0)
现在试试这个:
CREATE TABLE dupproduct AS (SELECT * FROM productcategory);
INSERT INTO productcategory (
category_name,
parent_id,
sort_order
)
VALUES
(
'Flowers',
0,
(SELECT
MAX(sort_order) + 1
FROM
dupproduct
WHERE parent_id = 0)
);
DROP TABLE dupproduct;