php mysql组函数的使用无效

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

我有表步骤,它是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
            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')");