偶然的你
order by rand()如您所知,大多數人推薦的解決方案無法擴充套件到大型表。set @r := (select floor(rand() * (select count(*) from mytable)));set @sql := concat('select * from mytable limit 1 offset ', @r);prepare stmt1 from @sql;execute stmt1;我在《sql反模式:避免資料庫程式設計的陷阱》一書中介紹了該解決方案和其他解決方案。如果要使用php進行此操作,則可以執行以下操作(未測試):<?php $mysqli->begin_transaction();$result = $mysqli->query("select count(*) from mytable")$row = $result->fetch_row(); $count = $row[0]; $offset = mt_rand(0, $count);$result = $mysqli->query("select * from mytable limit 1 offset $offset");...$mysqli->commit();
mysql 隨機行 mysql 如何選擇隨機行
最簡單的方式是使用 mysql 的 order by rand 子句。select col1 from tbl order by rand limit 10 它能很好的執行在小表中。然而,對於大表,生成隨機列表行時將產生乙個嚴重的效能問題,mysql 需要對每一行進行隨機,然後對它們排序。即使你只想...
mysql 如何選擇隨機行
最簡單的方式是使用 mysql 的 order by rand 子句。select col1 from tbl order by rand limit 10 它能很好的執行在小表中。然而,對於大表,生成隨機列表行時將產生乙個嚴重的效能問題,mysql 需要對每一行進行隨機,然後對它們排序。即使你只想...
MySQL 序列使用
mysql序列是一組整數 1,2,3,由於一張資料表只能有乙個欄位自增主鍵,如果你想實現其他欄位也實現自動增加,就可以使用mysql序列來實現。本章我們將介紹如何使用mysql的序列。mysql中最簡單使用序列的方法就是使用 mysql auto increment 來定義列。以下例項中建立了資料表...