[英]execute sql query in php doesn't work ,but the query work in 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.