当然我这里讲的都是与数据库有关的字符串拼凑
在实际开发中,我们时常拼凑字符串,当然我这里讲的都是与数据库有关的字符串拼凑。例如,有这样一个需求,鼠标移到用户上(超链接形式),显示这样的信息(用户名,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
当然我这里讲的都是与数据库有关的字符串拼凑相关推荐
- java 常量字符串过长_90%的同学都没搞清楚的 Java 字符串常量池问题(图文并茂)
字符串问题可谓是 Java 中经久不衰的问题,尤其是字符串常量池经常作为面试题出现.可即便是看似简单而又经常被提起的问题,还是有好多同学一知半解,看上去懂了,仔细分析起来却又发现不太明白. 背景说明 ...
- php 查询数据库 刷新,这个每次刷新都要去数据库里面查询一遍吗?
页面需要用到总的条数 需要在这个页面一直展示 那么这个代码这样写可以吗 每次刷新页面都要去数据库里面查询一次吗 是不是影响性能呢?如果数据库有几万条数据怎么办? $pdo=new PDO(" ...
- java水晶报表pull模式_水晶报表Pull模式 每次调用水晶报表的时候都要输入数据库密码的解决方案...
因为毕业设计的需要 所以研究了一下水晶报表. 前面报表设计什么的都很顺利 但到了调用水晶报表的时候 每次都要输入数据库密码.这很坑爹! 于是网上找了些资料,发现解决方法还是很多的. 不废话,直接贴代码 ...
- 孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)——数据库连接池 一、应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要
孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对 ...
- c++函数为什么带imp_二次函数含参最值问题,老师怎么讲学生都不明白,试试这九张动图...
"一入函数深似海,从此数学是路人" 很多同学都有这样的感觉.问:数学是从什么开始听不懂了?答:学函数的时候.函数问题作为中学阶段数学重要的知识点,真的是难倒了很多同学.数学老师也非 ...
- 兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构
点击上方"蓝字", 右上角选择"设为星标" 周一至周五早11点半!精品文章准时送上! 本文来自石杉的架构笔记 目录 (1)TB级数据放在一台机器上:难啊! (2 ...
- 知道 | 同学,你都了解关系型数据库,确定不了解一下这种数据库吗?
这是小小本周的第四篇,这篇将会介绍一款数据库.不同于关系型数据库的数据库. 今日打卡 小小待在北京,北京于近日下雨了.不过还好,小小情绪稳定,生活继续. 介绍 今日出场的是图数据库,图数据库的使用领域 ...
- mysql都有哪些数据库日志_MySQL数据库之MySQL都有哪些日志?分别都代表什么
本文主要向大家介绍了MySQL数据库之MySQL都有哪些日志?分别都代表什么 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. MySQL日志:主要包含:错误日志.查询日志.慢查询 ...
- python 死循环插曲变量_FishC03 讲:python小插曲之变量和字符串
本期主要内容简介: 1. 变量: 2. 转义字符使用介绍: 3. 原始字符串用法: 4. 长字符串的用法: 详细内容说明: 1. 变量:在 Python 中变量不需要事先声明,但是需要先赋值后再使用 ...
最新文章
- [转]php获取含中文字符串长度
- leetcode 594. Longest Harmonious Subsequence | 594. 最长和谐子序列
- threejs 三面体_如何在Three.js中构造空心圆柱体
- 《深入理解Hadoop(原书第2版)》——2.6本章小结
- 易语言源代码毁来者来了!!
- MyEclipse6.5设置
- Swift项目中不能定义OC类继承Swift类
- Shell:shell中的循环语句
- 易用宝项目记录day2-框架搭建
- 自己动手编程实现“电子地图下载器
- 群贤路附近哪有计算机学校,袍江,镜湖,皋埠,富盛…绍兴各镇学校2017年施教区划定!你家孩子该在哪就读?...
- mysql byte存入数据库_byte 保存到数据库
- wifi已连接不可上网服务器无响应,为什么手机连上wifi却上不了网
- 英国开创自我修复城市概念,利用无人机和机器人自动检测道路裂缝并进行修复
- 猎魂觉醒服务器界面不显示角色,猎魂觉醒新人常见问题集合 新人常见问题解决_3DM手游...
- python mysql版本查看_怎么查看mysql版本
- 计算机组成原理的VDD与VCC
- Openvino 模型转换命令mo.py
- 计算机启动快到桌面时屏幕黑,电脑开机后桌面黑屏怎么回事
- 黑苹果卡在苹果logo_不是买不起白苹果iMac,有的地方白苹果也比不上黑苹果