MySQL中RAND()函數 隨機獲取數據


mysql中使用order by rand(),可隨機組行或值。

使用分頁還好,不影響速度,但是我在項目中使用到了MyBatis-Plus,直接查詢全部數據生成一個普通的List,IPage自動替我們分頁,但是這樣效率非常低,SQL如下:

SELECT * FROM product ORDER BY RAND() 

[能日賺30軟件試玩平台,親測有效]

嘗試在SQL后面加分頁,但是IPage再分頁時會報錯,於是采用了下面這種寫法:

SELECT p.* FROM product p
  INNER JOIN (
    SELECT
      round(
    rand() * (SELECT max(id) FROM product)
  ) AS ids
) t ON p.id > t.ids

使用JOIN,查詢 rand() * max(id) 來隨機獲取數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM