Chinaunix

标题: mysql表中列设置问题或者查询语句问题? [打印本页]

作者: xzhang0210    时间: 2006-05-21 13:04
标题: mysql表中列设置问题或者查询语句问题?
我想在表中插入一列,这列的值为前三列的和。第一列为"语文成绩",第二列为“数学成绩”,第三列为“英语成绩”,想插入的列为“总分”。总分=语文+数学+英语。请问在数据库中应怎么表示,“总分”列可以自动获得前三列的和。这在微软的sql server 2000中很好办,但在mysql中我就不会了,谁知道怎么做啊?先谢谢了!!!
或者使用前三项和来做降序关键字,我这样排对吗?select * from xj order by
(`数学`+`语文`+`英语`) desc
我说的这几列都是数值型的。

[ 本帖最后由 xzhang0210 于 2006-5-21 13:07 编辑 ]
作者: xxjoyjn    时间: 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 编辑 ]
作者: rardge    时间: 2006-05-21 14:46
MySQL 好像还没有这种功能。
象这种派生属性,最好还是在搜索数据库的时候动态生成,或者由程序去处理,不要作为字段放在数据库中,浪费空间。
作者: xxjoyjn    时间: 2006-05-21 14:56
我测试过了,是可以的
作者: rardge    时间: 2006-05-21 23:22
原帖由 xxjoyjn 于 2006-5-21 14:56 发表
我测试过了,是可以的

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




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2