在实际开发中,我们时常拼凑字符串,当然我这里讲的都是与数据库有关的字符串拼凑。例如,有这样一个需求,鼠标移到用户上(超链接形式),显示这样的信息(用户名,Email,注册时间,上次登录时间。。等等),我们可以利用ajax来实现动态加载数据。可以这样拼凑字符串,首先将这些字段全部读出来在代码里写拼凑语句;也可以在数据库里写sql拼凑,到时直接读取就可以了。下面以一个小例子,来了解MySqL的几个字符串拼凑函数。

即时通讯软件

首先,创建一个表,为了简单起见,表结构如下:

/*

SQLyog 企业版 - MySQL GUI v8.14

MySQL - 5.1.45-community

*********************************************************************

*/

/*!40101 SET NAMES utf8 */;

create table `users` (

`id` double ,

`user_id` varchar (60),

`user_pwd` varchar (60),

`user_email` varchar (60)

);

可以自己插入一些数据,如:

insert into `users` (`id`, `user_id`, `user_pwd`, `user_email`) values('1','alexis','1111','123@126.com');

insert into `users` (`id`, `user_id`, `user_pwd`, `user_email`) values('2','ab','1234','1234@msn.com');

拼凑字符串主要用到以下三个函数:CONCAT、CONCAT_WS和GROUP_CONCAT

CONCAT(str1,str2,...)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) 。

如:SELECT CONCAT('用户名:',user_id,',邮箱',user_email) FROM users

结果如下:

用户名:alexis,邮箱123@126.com

用户名:ab,邮箱1234@msn.com

CONCAT_WS(separator,str1,str2,...)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)

如:SELECT CONCAT_WS(' || ',user_id,user_email) AS info FROM users

结果:

alexis || 123@126.com

ab || 1234@msn.com

GROUP_CONCAT(expr)

该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示:

GROUP_CONCAT([DISTINCT] expr [,expr ...]

[ORDER BY {unsigned_integer | col_name | expr}

[ASC | DESC] [,col_name ...]]

[SEPARATOR str_val])

如:SELECT GROUP_CONCAT('*',user_id) FROM users

结果:

*alexis,*ab

当然我这里讲的都是与数据库有关的字符串拼凑相关推荐

  1. java 常量字符串过长_90%的同学都没搞清楚的 Java 字符串常量池问题(图文并茂)

    字符串问题可谓是 Java 中经久不衰的问题,尤其是字符串常量池经常作为面试题出现.可即便是看似简单而又经常被提起的问题,还是有好多同学一知半解,看上去懂了,仔细分析起来却又发现不太明白. 背景说明 ...

  2. php 查询数据库 刷新,这个每次刷新都要去数据库里面查询一遍吗?

    页面需要用到总的条数 需要在这个页面一直展示 那么这个代码这样写可以吗 每次刷新页面都要去数据库里面查询一次吗 是不是影响性能呢?如果数据库有几万条数据怎么办? $pdo=new PDO(" ...

  3. java水晶报表pull模式_水晶报表Pull模式 每次调用水晶报表的时候都要输入数据库密码的解决方案...

    因为毕业设计的需要 所以研究了一下水晶报表. 前面报表设计什么的都很顺利 但到了调用水晶报表的时候 每次都要输入数据库密码.这很坑爹! 于是网上找了些资料,发现解决方法还是很多的. 不废话,直接贴代码 ...

  4. 孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)——数据库连接池 一、应用程序直接获取数据库连接的缺点   用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对 ...

  5. c++函数为什么带imp_二次函数含参最值问题,老师怎么讲学生都不明白,试试这九张动图...

    "一入函数深似海,从此数学是路人" 很多同学都有这样的感觉.问:数学是从什么开始听不懂了?答:学函数的时候.函数问题作为中学阶段数学重要的知识点,真的是难倒了很多同学.数学老师也非 ...

  6. 兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构

    点击上方"蓝字", 右上角选择"设为星标" 周一至周五早11点半!精品文章准时送上! 本文来自石杉的架构笔记 目录 (1)TB级数据放在一台机器上:难啊! (2 ...

  7. 知道 | 同学,你都了解关系型数据库,确定不了解一下这种数据库吗?

    这是小小本周的第四篇,这篇将会介绍一款数据库.不同于关系型数据库的数据库. 今日打卡 小小待在北京,北京于近日下雨了.不过还好,小小情绪稳定,生活继续. 介绍 今日出场的是图数据库,图数据库的使用领域 ...

  8. mysql都有哪些数据库日志_MySQL数据库之MySQL都有哪些日志?分别都代表什么

    本文主要向大家介绍了MySQL数据库之MySQL都有哪些日志?分别都代表什么 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. MySQL日志:主要包含:错误日志.查询日志.慢查询 ...

  9. python 死循环插曲变量_FishC03 讲:python小插曲之变量和字符串

    本期主要内容简介: 1. 变量: 2. 转义字符使用介绍: 3. 原始字符串用法: 4. 长字符串的用法: 详细内容说明: 1.  变量:在 Python 中变量不需要事先声明,但是需要先赋值后再使用 ...

最新文章

  1. [转]php获取含中文字符串长度
  2. leetcode 594. Longest Harmonious Subsequence | 594. 最长和谐子序列
  3. threejs 三面体_如何在Three.js中构造空心圆柱体
  4. 《深入理解Hadoop(原书第2版)》——2.6本章小结
  5. 易语言源代码毁来者来了!!
  6. MyEclipse6.5设置
  7. Swift项目中不能定义OC类继承Swift类
  8. Shell:shell中的循环语句
  9. 易用宝项目记录day2-框架搭建
  10. 自己动手编程实现“电子地图下载器
  11. 群贤路附近哪有计算机学校,袍江,镜湖,皋埠,富盛…绍兴各镇学校2017年施教区划定!你家孩子该在哪就读?...
  12. mysql byte存入数据库_byte 保存到数据库
  13. wifi已连接不可上网服务器无响应,为什么手机连上wifi却上不了网
  14. 英国开创自我修复城市概念,利用无人机和机器人自动检测道路裂缝并进行修复
  15. 猎魂觉醒服务器界面不显示角色,猎魂觉醒新人常见问题集合 新人常见问题解决_3DM手游...
  16. python mysql版本查看_怎么查看mysql版本
  17. 计算机组成原理的VDD与VCC
  18. Openvino 模型转换命令mo.py
  19. 计算机启动快到桌面时屏幕黑,电脑开机后桌面黑屏怎么回事
  20. 黑苹果卡在苹果logo_不是买不起白苹果iMac,有的地方白苹果也比不上黑苹果

热门文章

  1. ElasticSearch vs. Solr
  2. 2022年中国企业直播多场景应用策略白皮书
  3. 听歌也能倍速了!网易云音乐PM怎么想的?
  4. 2022年科技与IT十大趋势
  5. 2021年暑期旅游数据报告
  6. LeetCode刷题——最长回文子串
  7. python 弹出对话框_python+selenium 抓取弹出对话框信息
  8. python开发小型数据库_python web开发之数据库ORM的 peewee库 动手学习实践笔记
  9. 开放科学背景下的科学数据开放共享:国家青藏高原科学数据中心的实践
  10. 【操作系统】Semaphore处理吸烟者问题