给运营导出数据时,难免需要对字段进行拼接,如果 Mysql 可以完成的话,就可以少些很多代码。

  • concat()
  • concat_ws()
  • group_concat()

Mysql 确实有几个函数可以对字段进行拼接。

concat()

将多个字段使用空字符串拼接为一个字段

mysql> select concat(id, type) from mm_content limit 10;+------------------+| concat(id, type) |+------------------+| 100818image   || 100824image   || 100825video   || 100826video   || 100827video   || 100828video   || 100829video   || 100830video   || 100831video   || 100832video   |+------------------+10 rows in set (0.00 sec)
mysql> select concat(id, type, tags) from mm_content limit 10;+------------------------+| concat(id, type, tags) |+------------------------+| NULL          || NULL          || NULL          || NULL          || NULL          || NULL          || NULL          || NULL          || NULL          || NULL          |+------------------------+10 rows in set (0.00 sec)

上面这种方式如果想要使用分隔符分割,就需要每个字段中间插一个字符串,非常麻烦。

concat_ws() 可以一次性的解决分隔符的问题,并且不会因为某个值为 NUll,而全部为 NUll。

mysql> select concat_ws(' ', id, type, tags) from mm_content limit 10;+--------------------------------+| concat_ws(' ', id, type, tags) |+--------------------------------+| 100818 image          || 100824 image          || 100825 video          || 100826 video          || 100827 video          || 100828 video          || 100829 video          || 100830 video          || 100831 video          || 100832 video          |+--------------------------------+10 rows in set (0.00 sec)

最后一个厉害了,正常情况下一个语句写成这样一定会报错的。

mysql> select id from test_user group by age;ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test_user.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
mysql> select group_concat(name) from test_user group by age;+--------------------+| group_concat(name) |+--------------------+| wen,ning      || wxnacy,win     |+--------------------+2 rows in set (0.00 sec)
mysql> select group_concat(name separator ' ') from test_user group by age;+----------------------------------+| group_concat(name separator ' ') |+----------------------------------+| wen ning             || wxnacy win            |+----------------------------------+2 rows in set (0.00 sec)
mysql> select group_concat(name order by id desc separator ' ') from test_user group by age;+---------------------------------------------------+| group_concat(name order by id desc separator ' ') |+---------------------------------------------------+| ning wen                     || win wxnacy                    |+---------------------------------------------------+2 rows in set (0.00 sec)
mysql> select group_concat(concat_ws(',', id, name) separator ' ') from test_user group by age;+------------------------------------------------------+| group_concat(concat_ws(',', id, name) separator ' ') |+------------------------------------------------------+| 1,wen 2,ning                     || 3,wxnacy 4,win                    |+------------------------------------------------------+2 rows in set (0.00 sec)

更多相关文章

  1. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  2. 箭头函数的基础使用
  3. Python技巧匿名函数、回调函数和高阶函数
  4. 浅析android通过jni控制service服务程序的简易流程
  5. Android(安卓)bluetooth介绍(四): a2dp connect流程分析
  6. Android架构分析之使用自定义硬件抽象层(HAL)模块
  7. Android中OpenMax的适配层
  8. android 包管理系统分析
  9. Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)

随机推荐

  1. 【Android】自带Theme
  2. Android点滴积累(一)
  3. Android layout布局属性、标签属性总结大
  4. Android(安卓)修改SeekBar样式,打造理想进
  5. [摘]android 入门xml布局文件
  6. ok6410 android driver(11)
  7. Android API中文文档GridView
  8. NestedScrollingParent, NestedScrolling
  9. 〖Android〗存在多个Android设备时,使用Sh
  10. Android Selector和Shape