浏览 2765 次
锁定老帖子 主题:mysql 列值比较 逻辑函数IF
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-21
最后修改:2010-04-21
数据库里abc 表 CREATE TABLE `abc` ( `uid` int(10) NOT NULL, `num1` int(8) NOT NULL, `num2` int(8) NOT NULL, `num3` int(8) NOT NULL, PRIMARY KEY (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk 任务:是完成每列数据的比较,将uid 以及最大数据列显示出来。 方法: select if((select if(num1>num2,num1,num2))>num3,(select if(num1>num2,num1,num2)),num3)as num,uid from abc; 这样写感觉不好,有没好的方法来比较。
结果如下: +-----+-----+ | num | uid | +-----+-----+ | 3 | 1 | | 3 | 2 | | 4 | 3 | | 5 | 4 | | 8 | 5 | | 13 | 6 | | 56 | 7 | +-----+-----+ 7 rows in set
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-05-04
感觉楼主是想找出每行数据中最大的列
我觉得可以这样写 SELECT uId if(num1>num2, if(num1>num3,num1,num3), if(num2>num3,num2,num3)), uid from abc; 希望对你有用 |
|
返回顶楼 | |
发表时间:2010-05-05
呵呵,少做了一个判断。这样也好,谢谢~~ 有没更优化的方式啊。
|
|
返回顶楼 | |