用python 取得mysql隨機一條記錄的取巧辦法
網上有很多關於如何從資料庫取得隨機一條記錄的辦法,包括
SELECT RAND() * MAX(id) FROM random;
還有據說是效率最低的辦法:
SELECT * FROM foo ORDER BY RAND() LIMIT 1
至於其他的方法,可以參照其他的文章。這個就不貼地址了。
我說我的一個偷懶的辦法。那就是利用 Python的 random 庫。
random 裡面有這樣的一個方法
random.choice(seq)
Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.
注意這裡的seq,是個序列,那麼我們取得的結果集是不是就是一個序列啊?
既然是 那就別猶豫了,直接 choice 就行了啊。
strSQL='select * from dc_pool '
cursor.execute(strSQL)
results=cursor.fetchall()
res=random.choice(results)
貌似效率也還行。
相關推薦
用python 取得mysql隨機一條記錄的取巧辦法
網上有很多關於如何從資料庫取得隨機一條記錄的辦法,包括 SELECT RAND() * MAX(id) FROM random; 還有據說是效率最低的辦法: SELECT * FROM foo ORDER BY RAND() LIMIT 1 至於其他的方法,可以參照其他的
mysql insert一條記錄後 返回創建記錄主鍵id的方法
不支持 next .class 會有 prope ora 字符 一次 報錯 mysql插入數據後返回自增ID的方法 mysql和oracle插入的時候有一個很大的區別是,oracle支持序列做id,mysql本身有一個列可以做自增長字段,mysql在插入一條數據後,如何能獲
mysql insert一條記錄(事務提交之前)怎樣返回建立記錄的主鍵id,last_insert_id(),selectkey && 標籤屬性
mysql插入資料後返回自增ID的方法 mysql和oracle插入的時候有一個很大的區別是,oracle支援序列做id,mysql本身有一個列可以做自增長欄位,mysql在插入一條資料後,如何能獲得到這個自增id的值呢? 方法一:是使用last_insert_id mysql> SELE
【面經】面試官:如何以最高的效率從MySQL中隨機查詢一條記錄?
## 寫在前面 > MySQL資料庫在網際網路行業使用的比較多,有些小夥伴可能會認為MySQL資料庫比較小,儲存不了很多的資料。其實,這些小夥伴是真的不瞭解MySQL。MySQL的小不是說使用MySQL儲存的資料少,而是說其體積小,比較輕量。使用MySQL完全可以儲存千億級別的資料,這個我會在後面的文
從mysql數據庫取一條記錄裏的某個字段的值
spa mysql name mysql數據庫 mysqli class localhost dbn 執行 <?php $link = mysqli_connect("localhost","root","root","dbname"); //連接數據庫 $sql =
用遊標,和WHILE可以遍歷您的查詢中的每一條記錄並將要求的欄位傳給變數進行相應的處理
用遊標,和WHILE可以遍歷您的查詢中的每一條記錄並將要求的欄位傳給變數進行相應的處理 ================== DECLARE @A1 VARCHAR(10), @A2 VARCHAR(10), @A3 INT DECLARE CURSOR YOUCUR
在mysql 中查詢時間最大的一條記錄
首先如下這樣寫是錯的: SELECT name,MAX(last_updated) FROM digital_asset GROUP BY name; 這樣子查到的資料last_updated確實是最大的,但是和name沒有關係; 用這個方法可以實現: SELECT A.* F
前端之路:sql語句,表中隨機獲取一條記錄(資料)。(或者獲取隨機獲取多條(記錄)資料)
<!--表中獲取隨機一條title 耗時0.01s id==隨機欄位,最好為表id--> SELECT * FROM `tableName` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `ta
mysql新手求助關於同時修改一條記錄
希望bz出個mysql效能測試的討論主題孤墳嘿嘿笑道是這樣的你帶領雪月的部分精英玩家例如雪月兩姐妹、劍火鬼炙之類的超級高手你們來助陣幫我打下來領地我就嗯支付你們500萬RMB絕對的真金白銀怎麼樣希望bz出個mysql效能
用group by 分組後,沒有分組的欄位隨便取一條記錄sql如何寫?
假設表有order_info_details 訂單詳情表 欄位包含: 大家都知道,訂單詳情表中,就存的是一個訂單號有多個食物id。 那麼我們group by order_id後,就只能得到order_id。 但是我們想要得到同一個order_id中的某一條完整的
mysql 儲存過程使用遊標多執行一條記錄
今天在寫資料遷移的儲存過程發現總會多執行一條記錄修改後記錄如下: DECLARE notfoundroute INT DEFAULT 0; declare route_cursor CURSOR FOR select uid, uteamid, iday, ctitle, ctrip, ct
Mysql 查詢資料庫最早一條記錄和第一條資料
1.查詢表中最早時間的一條記錄 (1)錯誤的:select a.*,MIN(enter_time) from g2monitor_range_event a; 解析:因為這樣的話只是查詢了資料庫中的第一條記錄,有查詢了最早的時間,這是沒有必然聯絡的。 (2
mybatis的Mapper中在mysql和oracl中新增一條記錄,返回記錄id
情景再現:專案中經常在mybatis的Mapper中在mysql和oracl中新增一條記錄後,需要返回記錄id: 1.使用mysql資料庫: //java的User物件,包含id,name,password三個屬性 <insert id="insert" useGenerate
mysql 查詢表中最後一條記錄
查詢全部的記錄: select * from test_limit ; 查第一條記錄: &nbs
mysql中一條insert語句批量插入多條記錄
插入語句常用寫法: INSERT INTO items(name,city,price,number,picture) VALUES('耐克運動鞋','廣州',500,1000,'003.jpg')
django postgresql中隨機取出一條記錄的實現
import random random_uuid = ''.join([random.choice('0123456789abcdef') for _ in range(32)]) 採用fi
mysql查詢重複資料只保留一條記錄
比如我直接select * from movie where name="功夫";有三條資料,但我只希望拿到其中任意一條就行了。可以使用group by 分組因為name是一樣的,所以分組也就是隻有一組
MySQL語句:獲取最後一條記錄(ID數值最大的) - - Java EE
使用升序排序,將ID數值最大的放到最頂部。並顯示出來。 order by % desc 表示按降序排序 在sql語句的最後加上 limit 0,1 只取第一條記錄 select * from 表名 order by 表中ID欄位名稱 desc limit 0,1;
Mysql之一對多查詢,如何將多條記錄合併成一條記錄
資料庫環境:mysql5.6 需求描述(圖1): 最終期望的結果(圖2): 如上圖所示,現有兩張表cj_lottery_winning_record和cj_lottery_winning_user_info 兩者的關係是一對多。 現在進行連線查
mongodb 隨機獲取一條記錄的方法
原理: 1.先查詢表中的記錄總數 2.隨機獲取偏移量為0~總記錄數-1 3.查詢時skip偏移量,再獲取1條記錄 因本人測試環境php已升級到7.0以上,mongodb擴充套件使用支援php