mySQL - Group By不在Localhost上工作

时间:2018-04-27 02:50:35

标签: php mysql

我遇到一个问题,Group By在我的本地主机上的PHP代码中没有工作,但是当我在终端和mySQLworkbench中将其作为查询运行时,它可以正常工作。这是针对网站上的库存功能。

这是有问题的代码行:

SELECT i.id, i.itemID, ii.name, ii.category, ii.rarity, ii.image 
FROM inventory AS i 
LEFT JOIN items AS ii ON i.itemID = ii.itemID 
WHERE userID = 1 
GROUP BY i.itemID ORDER BY i.id DESC LIMIT 1, 5

我尝试做的是在PHP中运行它,就像我们运行具有多个结果的查询一样,并输出每一行(使用foreach)。

如果我把GROUP BY拿出来,那么查询在PHP中运行正常,但不幸的是,我需要GROUP BY,并且我将来还需要它来获取其他功能。

我正在运行mysql 5.7.21 Homebrew如果重要且PHP 5.6(网站有点旧)。

查询在网站的生产和开发服务器上运行。

修改 忘了提,我试过运行这段代码 - 没有解决问题:

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

修改 这是PHP代码:

    $items     = database::retrieveAllRows( database::query("
      SELECT i.id, i.itemID, ii.name, ii.category, ii.rarity, ii.image 
         FROM inventory AS i LEFT JOIN items AS ii ON i.itemID = ii.itemID WHERE userID = %u 
        GROUP BY i.itemID ORDER BY i.id DESC LIMIT $limit, $pageLimit", $id) );

retrieveAllRows是我们的功能之一:

        public function retrieveAllRows ( array $res )
    {
            if ( $this -> validateResultSet ( $res ) === FALSE )
            {
                    return ( NULL );
            }

            return ( $res [ 0 ] -> fetchAll () );
    }

0 个答案:

没有答案