看板 PHP 關於我們 聯絡資訊
因在question資料表裡有2個欄位 qid question ----------------- 1 題目1 2 題目2 3 題目3 我想要隨機出現2題的題目並依照qid編號由小到大來排順序 請問這樣的sql語法該怎麼寫呢? 有詢問過版上一位前輩,他的回答 select * from question where qid in (select qid from question order by rand()) order by qid asc limit 2 這樣都是固定前2筆出現,而無法隨機 一直跑不出要的結果 請問該怎麼寫這個sql語法呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.17.131.249
water2924:select * from (select qid from question order by 06/05 18:58
water2924:上面打到一半發現錯了 更正一下 06/05 18:59
water2924:select * from (select * from question order by 06/05 19:01
water2924:rand() limit 2) as a order by a.qid asc 06/05 19:02
water2924:先隨機取前兩筆然後在照qid排序 06/05 19:03
stator:太感謝w前輩,但這個雙重select真的有點複雜 06/05 19:14
stator:使用in不行,一定得要用這個。冏.. 06/05 19:15
water2924:剛沒仔細看 你原本的用法也是可以的 limit放進括弧內 06/05 19:37
water2924:應該也可以達成你的目的 06/05 19:37
water2924:你原本的sql ()內已經將qid打亂了 但是最外層又重新排序 06/05 19:39
water2924:所以才會只跑出固定的前兩筆 06/05 19:39
stator:抱歉,W大,我把limit 2放進select子()裡,是無法執行的 06/05 20:13
water2924:@@ 抱歉 是我弄錯了 06/05 20:17
averywu:SELECT * FROM question ORDER BY RAND() LIMIT 0,2 06/08 10:57