mysql中的set&num

mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值,
不同的是set可以取多个值,enum只能取一个
Sql代码   收藏代码
  1. CREATE TABLE `20121101_t` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  3.   `namevarchar(20) NOT NULL,  
  4.   `cl` set('x','w','r'NOT NULL,  
  5.   `c2` enum('f','d'NOT NULL,  
  6.   PRIMARY KEY (`id`)  
  7. ) ENGINE=InnoDB   
  8.   
  9. insert into 20121101_t  
  10. values(null,'a.txt','r,w','d');  
  11.   
  12. insert into 20121101_t  
  13. values(null,'b.txt','r,w','f');  

比如给b.txt文件加上执行权限
Sql代码   收藏代码
  1. update 20121101_t set cl = cl|1 where id =2  

1是因为x权限出现在了第一个

再比如给b.txt文件去掉写权限
Sql代码   收藏代码
  1. update 20121101_t set cl = cl&~2 where id =2  


这时再看
Sql代码   收藏代码
  1. select * from 20121101_t  

1 a.txt w,r d
2 b.txt x,r f

可以仿照linux下chmod的用法,直接用数字表示权限
比如把b.txt变成只读
Sql代码   收藏代码
  1. update 20121101_t set cl = 4 where id =2  


比如要找到所有包含了读权限的文件
Sql代码   收藏代码
  1. select * from 20121101_t where cl&4  

或者
Sql代码   收藏代码
  1. select * from 20121101_t where FIND_IN_SET('r',cl)>0  


enum就相对简单了,比如把a.txt从文件夹变成文件
Sql代码   收藏代码
  1. update 20121101_t set c2 = 'f' where id =1  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值