php mysql组函数的使用无效
我有表步骤,它是sort_ididA_i、page_id和sort number sort,我需要添加具有相同page_id和max sort of group id和page_id的新行php mysql组函数的使用无效,mysql,Mysql,我有表步骤,它是sort_ididA_i、page_id和sort number sort,我需要添加具有相同page_id和max sort of group id和page_id的新行 mysql_query("INSERT INTO `steps` (`sort`, `page_id`) VALUES ( MAX(`sort`) + 1, ( SELECT page_id
mysql_query("INSERT INTO `steps` (`sort`, `page_id`)
VALUES
(
MAX(`sort`) + 1,
(
SELECT
page_id
FROM
steps
WHERE
`id` = '1'
)
)");
我收到一个错误
[Err] 1111 - Invalid use of group function
我需要这样
INSERT INTO `steps` (`sort`, `page_id`)
VALUES
(
SELECT
Max(s1.sort) + 1 AS sort,
s2.page_id AS page_id
FROM
steps AS s1,
steps AS s2
WHERE
s2.id = '1'
)
但是[Err]1064-您的SQL语法有错误 您似乎缺少子查询的select部分:
insert into `steps`(`sort`, `page_id`)
values
(
SELECT
max(`sort`) +1,
page_id
FROM
steps
WHERE
`id` = '1'
group by
page_id
)
虽然已经很晚了,但这要么有效,要么让你走上正确的道路,让它发挥作用
最后,您应该真正远离mysql_查询函数。请看一看。它更安全,可移植到其他数据库,如果你现在只是在学习这些东西,你也可以学习当前的技术
编辑:
根据对另一个答案的评论,这将更接近您想要的:
insert into `steps`(`sort`, `page_id`)
values
(
SELECT
(select max(`sort`) from steps) +1,
page_id
FROM
steps
WHERE
`id` = '1'
group by
page_id
)
“组id和页面id的最大排序”-然后选择该值,而不是将聚合函数名随机放入不属于它的查询中。我需要最大排序。。id可以是任意的,不仅是1,而且它们具有相同的页面id,我需要这样插入步骤排序,页面id值选择Maxs1.sort+1作为排序,s2.page\u id作为步骤中的页面id作为s1,步骤作为s2,其中s2.id='1'删除值字,因为子查询语句返回scalat值,所以无需将值插入步骤排序,page_id选择Maxs1.sort+1作为排序,s2.page_id作为page_id作为步骤s1,步骤s2其中s2.id='1'使用此插入到步骤排序,page_id选择Maxs1.sort+1作为排序,s2.page_id作为page_id作为步骤s1,步骤s2其中s2.id='1'我需要像插入到步骤SSORT,page_id值选择maxsort+1,步骤中的页码id,其中id='1'按页码分组
mysql_query("INSERT INTO `steps` (`sort`, `page_id`)(SELECT MAX(`sort`) + 1,page_id FROM steps WHERE `id` = '1')");