喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: [问题] 请教大家一个问题!  
 
rjp_ww
注册会员
Rank: 2
初级会员


UID 67694
精华 0
积分 173
帖子 434
金钱 173 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-2
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
请教大家一个问题!

我想用一个字段表示一条信息的几种状态,具体意思如下:

例:一条信息可以有以下五种状态:审核|精品|热点|静态|删除

我设置一个5位的varchar字段:
审 精 热 静 删
0  0  0  0  0 未审信息
1  x  x  x  0 审核信息--凡是第一位是1和第五位是0的,我都认定是审核信息;
1  1  x  x  0 精品信息--凡是第一位和第二位是1和第五位是0的,我都认定是精品信息;
1  x  1  x  0 热点信息--凡是第一位和第三位是1和第五位是0的,我都认定是热点信息;
x  x  x  1  0 静态信息--凡是第四位1的,我都认定是静态信息;
x  x  x  x  1 删除信息--凡是第五位1的,我都认定是删除信息;

x--表示可以是0也可以是1;

问题:是如何用SQL语句筛选出各类信息,也就是按一个固定字段的第几位的状态(是0或1)来筛选出信息。

不知道我叙述的清楚不,大家看明白了吗?

如果有看明白的,知道如何做的,麻烦多说两句,谢谢了,不胜感激!
2007-9-7 09:46 AM#1
查看资料  发短消息  顶部
 
村长夫人
高级会员
Rank: 4


UID 94673
精华 0
积分 501
帖子 973
金钱 501 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2007-6-29
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
别用varchar用 tinyint
之后用位运算做条件查询




又该换马甲了.....
2007-9-7 10:05 AM#2
查看资料  发短消息  顶部
 
rjp_ww
注册会员
Rank: 2
初级会员


UID 67694
精华 0
积分 173
帖子 434
金钱 173 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-2
状态 离线
[推荐阅读] www.pkjg.com(pk价格网) 免费培训
刚试了一种方式,可以实现

#
# 表的结构 `myinfo`
#

CREATE TABLE `myinfo` (
  `id` int(8) NOT NULL auto_increment,
  `infostatus` set('sh','elite','onfire','html','del') NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;

#
# 导出表中的数据 `myinfo`
#

INSERT INTO `myinfo` VALUES (1, '');
INSERT INTO `myinfo` VALUES (2, 'sh');
INSERT INTO `myinfo` VALUES (3, 'sh,elite');
INSERT INTO `myinfo` VALUES (4, 'sh,elite,onfire');
INSERT INTO `myinfo` VALUES (5, 'sh,onfire,html');
INSERT INTO `myinfo` VALUES (6, '');
INSERT INTO `myinfo` VALUES (7, 'onfire,html');
INSERT INTO `myinfo` VALUES (8, 'sh,elite');
INSERT INTO `myinfo` VALUES (9, 'elite,html');


SELECT *
FROM `myinfo`
WHERE FIND_IN_SET( 'sh', infostatus ) && FIND_IN_SET( 'html', infostatus )

但不知道效率如何,大家还有更好的做法吗?
麻烦知道的话,贴代码,鄙视只点几个关键词。
2007-9-7 11:08 AM#3
查看资料  发短消息  顶部
 
村长夫人
高级会员
Rank: 4


UID 94673
精华 0
积分 501
帖子 973
金钱 501 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2007-6-29
状态 离线
[推荐阅读] 为文件名添加诸如_thumb这样的标记
就5种状态?我还以为有31种状态



又该换马甲了.....
2007-9-7 11:11 AM#4
查看资料  发短消息  顶部
 
rjp_ww
注册会员
Rank: 2
初级会员


UID 67694
精华 0
积分 173
帖子 434
金钱 173 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-2
状态 离线
[推荐阅读] Apache Index目录浏览


QUOTE:
原帖由 村长夫人 于 2007-9-7 11:11 AM 发表
就5种状态?我还以为有31种状态
呵呵,只是列举5种而已,可能有很多种,但不会超过64种,

再问问,手册上说FIND_IN_SET() 函数将被优化为使用位运算,这说明效率高还是底?

不好意思,草根出身,很多都不懂,麻烦夫人指点!
2007-9-7 11:20 AM#5
查看资料  发短消息  顶部
 
wamper (wamper)
金牌会员
Rank: 6Rank: 6
资深会员


UID 23187
精华 0
积分 1036
帖子 1207
金钱 1036 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2003-9-14
来自 北京
状态 离线
[推荐阅读] 最近发现自己出现了问题。。谁给指点
1, 2, 4, 8, 16
2007-9-7 12:36 PM#6
查看资料  发短消息  ICQ 状态  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.022710 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP