免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1523 | 回复: 4
打印 上一主题 下一主题

mysql表中列设置问题或者查询语句问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-21 13:04 |只看该作者 |倒序浏览
我想在表中插入一列,这列的值为前三列的和。第一列为"语文成绩",第二列为“数学成绩”,第三列为“英语成绩”,想插入的列为“总分”。总分=语文+数学+英语。请问在数据库中应怎么表示,“总分”列可以自动获得前三列的和。这在微软的sql server 2000中很好办,但在mysql中我就不会了,谁知道怎么做啊?先谢谢了!!!
或者使用前三项和来做降序关键字,我这样排对吗?select * from xj order by
(`数学`+`语文`+`英语`) desc
我说的这几列都是数值型的。

[ 本帖最后由 xzhang0210 于 2006-5-21 13:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-05-21 13:39 |只看该作者
假若你的成绩表是这个样子的:
xj (no,chinese,maths,English)
可以这样写SQL语句
select no,chinese,maths,Englisn , chinese+maths+English   as total from xj order by total desc

查询结果形式如下:

no  chinese maths English total
11      87        90       80      257
22      67        83       90      240

没测试过,不知道行不行

[ 本帖最后由 xxjoyjn 于 2006-5-21 14:51 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-05-21 14:46 |只看该作者
MySQL 好像还没有这种功能。
象这种派生属性,最好还是在搜索数据库的时候动态生成,或者由程序去处理,不要作为字段放在数据库中,浪费空间。

论坛徽章:
0
4 [报告]
发表于 2006-05-21 14:56 |只看该作者
我测试过了,是可以的

论坛徽章:
0
5 [报告]
发表于 2006-05-21 23:22 |只看该作者
原帖由 xxjoyjn 于 2006-5-21 14:56 发表
我测试过了,是可以的

呵呵,我不是说你的这种写法不行,我也是推荐他用这种方式。
LZ 的意思是在数据表中建立一个字段,该字段通过函数关系自动获取另外某些字段的值,在查询时直接取该字段值即可,不需要再进行人工计算。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP