Mysql对检索结果进行处理后返回以及在列上使用函数

有的时候,存在表中的数据并不是应用程序所需要的。我们需要对直接从数据库中检索出来的结果进行转换、计算或者格式化。当然,这些可以在应用数据库的应用程序中进行,但是在数据库中进行这些操作比在应用程序中进行这些操作要快,所以这些操作最好在数据库中操作。

1、拼接字段concat

将返回的两列结果进行拼接返回。concat()将多个逗号隔开的字符串链接起来。

mysql> SELECT concat(vend_name,'(',vend_address,')') FROM vendors ORDER BY vend_name;
结果是:

+----------------------------------------+
| concat(vend_name,'(',vend_address,')') |
+----------------------------------------+
| ACME(555 High Street)                  |
| Anvils R Us(123 Main Street)           |
| Furball Inc.(1000 5th Avenue)          |
| Jet Set(42 Galaxy Road)                |
| Jouets Et Ours(1 Rue Amusement)        |
| LT Supplies(500 Park Street)           |
+----------------------------------------+
6 rows in set (0.09 sec)

如果列中存放的数据左右含有空格,那么可以使用RTrim去除右侧空格,LTrim去除左侧空格,Trim去除两边空格。

2、列的别名

上例子中,返回结果的列名,比较长,可以通过制定列的别名来简化。

mysql> SELECT concat(vend_name,'(',vend_address,')') AS vendors FROM vendors ORDER BY vend_name;
返回结果是:

+---------------------------------+
| vendors                         |
+---------------------------------+
| ACME(555 High Street)           |
| Anvils R Us(123 Main Street)    |
| Furball Inc.(1000 5th Avenue)   |
| Jet Set(42 Galaxy Road)         |
| Jouets Et Ours(1 Rue Amusement) |
| LT Supplies(500 Park Street)    |
+---------------------------------+
6 rows in set (0.00 sec)

3、计算字段

将检索出来的列进行算术运算。

比如,从订单表中,检索出每种商品的总价。

mysql> SELECT prod_id,quantity,item_price,quantity*item_price AS item_prices FROM orderitems ;
返回结果是:

+---------+----------+------------+-------------+
| prod_id | quantity | item_price | item_prices |
+---------+----------+------------+-------------+
| ANV01   |       10 |       5.99 |       59.90 |
| ANV02   |        3 |       9.99 |       29.97 |
| TNT2    |        5 |      10.00 |       50.00 |
| FB      |        1 |      10.00 |       10.00 |
| JP2000  |        1 |      55.00 |       55.00 |
| TNT2    |      100 |      10.00 |     1000.00 |
| FC      |       50 |       2.50 |      125.00 |
| FB      |        1 |      10.00 |       10.00 |
| OL1     |        1 |       8.99 |        8.99 |
| SLING   |        1 |       4.49 |        4.49 |
| ANV03   |        1 |      14.99 |       14.99 |
+---------+----------+------------+-------------+
11 rows in set (0.00 sec)

4、在列上应用函数

文本处理函数Upper(),Lower(),Trim(),Length(),Left(),Right(),Substring(),Locate()。

日期时间处理函数:AddDate(),AddTime(),CurDate(),CurTime(),Date(),Day(),Hour(),Minute(),Month(),Now(),Second(),Time(),Year()。

例如:

mysql> SELECT cust_id,order_num FROM orders WHERE Date(order_date) BETWEEN '2005-09-01' AND '2009-09-30';
返回结果:

+---------+-----------+
| cust_id | order_num |
+---------+-----------+
|   10001 |     20005 |
|   10003 |     20006 |
|   10004 |     20007 |
|   10005 |     20008 |
|   10001 |     20009 |
+---------+-----------+
5 rows in set (0.13 sec)

计算函数:Abs(),Mod(),Rand(),Exp()


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值