带限制的SQL查询在phpmyadmin中不起作用

时间:2016-09-07 16:09:49

标签: php mysql sql sql-server phpmyadmin

我把这个sql代码放在PHPMYADMIN 中以显示前4行但是它显示了我表格的所有43行。我不知道为什么。 请帮忙!

以下是查询:

Public class main{
    public static void main(String[] a){
        Human AnimatedCharacter = new Human('Fry',new Seymour());
        System.out.println(AnimatedCharacter.getFavoriteAnimal().isPetrifiedInDiamondium()? 
        "Not the episode with the dog" : 
        "It's the episode with the dog..");
    }
}

非常感谢提前

2 个答案:

答案 0 :(得分:1)

我认为这 可能是因为phpMyAdmin修改了SELECT语句,并添加了它自己的LIMIT子句:出于某种原因,它可能会用自己的LIMIT替换LIMIT。

phpMyAdmin插入一个LIMIT,因为默认情况下,当您在GUI中查看时,它会分页SELECT的结果,它不会立即显示大型表的所有行(有一个复选框,您可以单击以执行此操作,显示结果的第一首页。

尽管它并不总是很聪明:我遇到了一个相关的困难,即它使用FOR UPDATE将LIMIT子句插入到子查询中,而MariaDB不允许这样做……这给了我一个难题。错误。

因此,您必须记住在使用phpMyAdmin时,它将LIMIT子句添加到SQL中,它不会按原样发送到数据库。

我认为某个地方可以关闭此行为,但是OTOH我不知道那是什么。 (如果有人知道,请在评论中指出!)

答案 1 :(得分:0)

您可以使用LIMIT和OFFSET。 在你的情况下,你只需要LIMIT,因为你从0开始。

SELECT  * FROM `myTable` 
natural JOIN `column1` 
natural JOIN `column2` 
WHERE `mytable`.`something` = 1 
ORDER BY mytable_date DESC LIMIT 4 OFFSET 0;

或更简单

 ORDER BY mytable_date DESC LIMIT 4;