作者stator (别急着吃棉花糖)
看板PHP
标题[请益] 请教关於select in的sql语法
时间Wed Jun 5 18:38:55 2013
因在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
1F:推 water2924:select * from (select qid from question order by 06/05 18:58
2F:→ water2924:上面打到一半发现错了 更正一下 06/05 18:59
3F:→ water2924:select * from (select * from question order by 06/05 19:01
4F:→ water2924:rand() limit 2) as a order by a.qid asc 06/05 19:02
5F:→ water2924:先随机取前两笔然後在照qid排序 06/05 19:03
6F:→ stator:太感谢w前辈,但这个双重select真的有点复杂 06/05 19:14
7F:→ stator:使用in不行,一定得要用这个。冏.. 06/05 19:15
8F:推 water2924:刚没仔细看 你原本的用法也是可以的 limit放进括弧内 06/05 19:37
9F:→ water2924:应该也可以达成你的目的 06/05 19:37
10F:→ water2924:你原本的sql ()内已经将qid打乱了 但是最外层又重新排序 06/05 19:39
11F:→ water2924:所以才会只跑出固定的前两笔 06/05 19:39
12F:→ stator:抱歉,W大,我把limit 2放进select子()里,是无法执行的 06/05 20:13
13F:推 water2924:@@ 抱歉 是我弄错了 06/05 20:17
14F:→ averywu:SELECT * FROM question ORDER BY RAND() LIMIT 0,2 06/08 10:57