网页功能:
加入收藏
设为首页
网站搜索
编程QQ群
2024年11月25日 星期一
首页
编程论坛
技术文档
黑客安全
源代码
应用下载
电子图书
电脑硬件
游戏开发
休闲娱乐
编程网站
注册
登录
帮助
编程开发论坛
»
网站开发与设计
»
PHP
» 一句随机查询的 SQL
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
一句随机查询的 SQL
迦楼罗
初级程序员
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2006-4-6 10:35
只看该作者
一句随机查询的 SQL
有个enum类型的字段width , 具有N个值,现假设有100,200,300这三个值。
现在要实现的效果是,随机查询三列,但必须是包括了这三个不同值的行。
比如查询结果为:
ID width
2 100
15 200
30 300
ID是随机的,但是width必须不同而且有几个width提取几行,可能一句实现么?
UID
1819
帖子
7
精华
0
积分
81
阅读权限
20
在线时间
0 小时
注册时间
2006-2-22
最后登录
2006-5-20
查看详细资料
TOP
MaxFree
初级程序员
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2006-4-6 10:35
只看该作者
是不是当你的width重复时只取一个ID咯,再进行随机取数
这个应该先用随机对enum生成三个行数这三个数不重复,然后再做select语句
UID
1822
帖子
8
精华
0
积分
101
阅读权限
20
在线时间
0 小时
注册时间
2006-2-22
最后登录
2006-5-20
查看详细资料
TOP
秋逸
初级程序员
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2006-4-6 10:36
只看该作者
不对,不对。
有几个width值,返回几行
那不是和group by width一样了吗??
UID
1824
帖子
9
精华
0
积分
101
阅读权限
20
在线时间
0 小时
注册时间
2006-2-22
最后登录
2006-5-31
查看详细资料
TOP
cake
初级程序员
发短消息
加为好友
当前离线
4
#
大
中
小
发表于 2006-4-6 10:38
只看该作者
我的mysql出了点问题,不能测试。只能说说思路
GROUP BY width 可以满足“有几个值就提取几行”,但以最后出现的为准
如
15 200
20 200
则得到的是20 200
DISTINCT(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
UID
1833
帖子
7
精华
0
积分
100
阅读权限
20
在线时间
0 小时
注册时间
2006-2-22
最后登录
2006-5-20
查看详细资料
TOP
lucky
初级程序员
发短消息
加为好友
当前离线
5
#
大
中
小
发表于 2006-4-6 10:38
只看该作者
临时表存活期多长?
存活于当前连接,关闭连接自动删除。
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就不存在了
UID
1835
帖子
6
精华
0
积分
60
阅读权限
20
在线时间
0 小时
注册时间
2006-2-22
最后登录
2006-5-20
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
版块跳转 ...
> 程序开发
> Visual Basic
> Visual C++
> Delphi
> Visual C#
> Java
> C++Builder
> 其他语言
> 网站开发与设计
> ASP
> PHP
> JSP
> Python
> 脚本语言
> HTML/CSS
> 平面设计
> Flash
> 其他问题
> 数据库技术
> PowerBuilder
> Foxpro
> SQL Server
> Oracle
> MySQL
> 其他数据库
> 操作系统
> Windows
> Linux
> Unix
> BSD
> Solaris
> 安全防护
> 杀毒专区
> 安全配制
> 工具介绍
> 防火墙
> 黑客入侵
> 漏洞检测
> 破解方法
> 软件应用
> 办公软件
> 系统工具
> 网络应用
> 音乐视频
> QQ专区
> MSN专区
> 分类信息
> 产品展示
> 求职招聘
> 项目合作
> 房屋信息
> 教育培训
> 交友约会
> 跳蚤市场
> 企业信息
> 职场创业
> 企业招聘专区
> 产品展示
> 培训信息
> 电脑硬件
> 最新硬件
> 选购技巧
> DIY乐园
> 硬件诊所
> 笔记本
> 数码玩家
> 手机玩家
> MP3随身听
> DC/DV
> 游戏开发
> 单机游戏
> 竞技游戏
> 魔兽争霸
> 星际争霸
> 反恐精英
> FIFA
> 极品飞车
> 实况足球
> 网络游戏
> 魔兽世界
> 天龙八部
> 传奇
> 大话西游
> 奇迹
> 武林外传
> 征途
> 灌水乐园
> 文艺茶座
> 历史文化
> 影音娱乐
> 数码贴图
> 活动聚会
> 车友之家
> 意见建议
> 版权举报
> 站务管理
控制面板首页
编辑个人资料
积分记录
公众用户组
基本概况
流量统计
客户软件
发帖量记录
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计