求一句随机查询的 SQL select ID,width from table group by width limit rand(),1; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么来晚了?根本不是这么简单是有几个width值,返回几行,并且这些行的width值不一样被你们打败了 SELECT * FROM table GROUP BY rand( ) , widthLIMIT 3 觉得这个查寻如何?? 是不是当你的width重复时只取一个ID咯,再进行随机取数这个应该先用随机对enum生成三个行数这三个数不重复,然后再做select语句 不对,不对。有几个width值,返回几行那不是和group by width一样了吗?? 楼上说的对,就要这个效果,选择的行width不重复,但是enum里有几个值就提取几行 我的意思是,enum里有几个值,就显示几行 group by width 就是enum里有几个值,就显示几行晕 楼主,那个enum类型是什么类型呀??我怎么找不着呢?? SELECT * FROM table GROUP BY widthLIMIT rand( ) ,3 楼主,我看这条应该合你的意了。或者用循环来取三条group by width 我的mysql出了点问题,不能测试。只能说说思路GROUP BY width 可以满足“有几个值就提取几行”,但以最后出现的为准如15 20020 200则得到的是20 200DISTINCT(width) 也可以满足“有几个值就提取几行”,但以最先出现的为准如15 20020 200则得到的是15 200但这不能满足楼主的“随机查询”的要求所以需要先对表做随机排序然后再取由于mysql4.1.0以下不支持子查询,所以要使用临时表CREATE TEMPORARY TABLE temp SELECT * FROM tbl_name ORDER BY rand()SELECT id, DISTINCT(width) FROM temp 如果是 mssql 就好做了!~~~~~~~~~~:( 哈哈,我的语句真的有问题哦。好再来一个,好像真的可以了。select distinct(width) from table group by rand() limit 3;快试试吧。嘻嘻嘻。 那还是得两个查询~~创建临时表很耗资源吧?请问唠叨,临时表存活期多长?数据库关闭后自动删除?我用phpmyadmin不能访问,用命令行可以,呵呵,不知道什么意思。如果不能一句完成,那还不如进行几个SQL查询每次返回一行啊。 临时表存活期多长?存活于当前连接,关闭连接自动删除。phpmyadmin中不能使用,php编程即可如果不能一句完成,那还不如进行几个SQL查询每次返回一行啊是的,但你总得知道width到底有多少可能的取值,不能每修改一次表就修改一次程序吧?to kingerq(多菜鸟) select distinct(width) from table group by rand() limit 3;中按rand() 分组似乎说不通吧?能保证不丢失数据吗?假定id width rand()10 100 .0120 200 .530 300 .01分组后10 100就不存在了 SELECT id, DISTINCT(width) FROM temp这句不能运行~~ SELECT DISTINCT(width),id FROM temp这样子就可以了。 一个长字符串递归取子串的问题 关于fckeditor在php中排版失效 散分了 正则问题 请教一个正则:把[]里面的字符串替换成图片文件名. iis运行正常,apach不可以运行 召集哈尔滨程序员共同开发项目 *********我想把php源代码压缩后上传,然后解压缩并安装,请问怎样用PHP写一个解压缩的程序?****************** 请问在ASP中的"Application.Lock",在PHP中如何代替 推荐一个好的国内PHP站点! CodeMaker 代码自动生成工具 2.0 发布了 这项功能如何实现?
是有几个width值,返回几行,并且这些行的width值不一样
被你们打败了
FROM table
GROUP BY rand( ) , width
LIMIT 3 觉得这个查寻如何??
这个应该先用随机对enum生成三个行数这三个数不重复,然后再做select语句
我怎么找不着呢??
FROM table
GROUP BY width
LIMIT rand( ) ,3 楼主,我看这条应该合你的意了。
或者用循环来取三条group by width
如
15 200
20 200
则得到的是20 200DISTINCT(width) 也可以满足“有几个值就提取几行”,但以最先出现的为准
如
15 200
20 200
则得到的是15 200但这不能满足楼主的“随机查询”的要求所以需要先对表做随机排序然后再取
由于mysql4.1.0以下不支持子查询,所以要使用临时表
CREATE TEMPORARY TABLE temp SELECT * FROM tbl_name ORDER BY rand()
SELECT id, DISTINCT(width) FROM temp
好再来一个,好像真的可以了。select distinct(width) from table group by rand() limit 3;快试试吧。嘻嘻嘻。
请问唠叨,临时表存活期多长?数据库关闭后自动删除?
我用phpmyadmin不能访问,用命令行可以,呵呵,不知道什么意思。如果不能一句完成,那还不如进行几个SQL查询每次返回一行啊。
存活于当前连接,关闭连接自动删除。
phpmyadmin中不能使用,php编程即可如果不能一句完成,那还不如进行几个SQL查询每次返回一行啊
是的,但你总得知道width到底有多少可能的取值,不能每修改一次表就修改一次程序吧?to kingerq(多菜鸟)
select distinct(width) from table group by rand() limit 3;
中按rand() 分组似乎说不通吧?能保证不丢失数据吗?
假定
id width rand()
10 100 .01
20 200 .5
30 300 .01
分组后10 100就不存在了
这句不能运行~~
这样子就可以了。