簡體   English   中英

帶有限制的 SQL 查詢在 phpmyadmin 中不起作用

[英]SQL Query with Limit doesn't work in phpmyadmin

我將此 sql 代碼放在 PHPMYADMIN 中以顯示前 4 行但它顯示了我的表的所有 43 行 我不知道為什么。 請幫忙 !

這是查詢:

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

提前謝謝了

我認為這可能是因為 phpMyAdmin 修改了 SELECT 語句,添加了它自己的 LIMIT 子句:出於某種原因,它可能會用自己的 LIMIT 替換你的 LIMIT。

phpMyAdmin 插入一個 LIMIT 是因為默認情況下,當您在 GUI 中查看它時,它會對 SELECT 的結果進行分頁,它不會立即顯示大表的所有行(您可以單擊一個復選框來執行此操作,一旦初始第一頁結果顯示)。

不過,它並不總是很聰明:我剛剛遇到了一個相關的困難,它將 LIMIT 子句插入到帶有 FOR UPDATE 的子查詢中,這是 MariaDB 不允許的……它給了我一個錯誤。

因此,您在使用 phpMyAdmin 時必須記住,它將 LIMIT 子句添加到您的 SQL,它不會按原樣發送到數據庫。

我認為可能有一個選項可以關閉這種行為,但 OTOH 我不知道那在哪里。 (如果有人知道,請在評論中指出!)

您可以為此使用 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM