MySQL中CONCAT()的用法

在日常开发过程中,特别是在书写接口的时候,经常会遇到字符串拼接的情况,比如在返回图片数据时,数据库里往往存储的是相对路径,而接口里一般是存放绝对地址,这就需要字符串拼接了

一、通过PHP拼接

这种方法比较简单,可以通过圆点‘.’实现

  //获取商品规格信息  $sku = Db::name('product_attr')->where(['product_id'=>$id])
->field('id,attr,attr_id,stock,common_price,super_price,img')
->select()->toArray();
$sku = set_img_url($sku,'img');
 /**
* 功能:批量转换图片地址
*
* User: cyf
* Time: 2018/8/22 0022 18:24
*/
function set_img_url($arr = [],$str = 'thumbnail')
{
if(empty($arr)) return $arr;
foreach ($arr as $key=>$val) {
$arr[$key][$str] = get_absolute_img($val[$str]);
}
unset($val);
return $arr;
}
 /**
* 功能:将图片由相对地址转为绝对地址
*
* User: cyf
* Time: 2018/8/22 0022 10:40
*/
function get_absolute_img($img){
return cmf_get_domain() . $img;
}

这种方法就是在数据库里取出数据之后,再把数据遍历一遍,在遍历过程中拼接域名,所以性能上就差点了

二、MySQL拼接

1、直接通过mysql中的concat()函数进行拼接

 //3、规格
$domain = cmf_get_domain();
$sku = Db::name('product_attr')->where(['product_id'=>$id])
->field('id,attr,attr_id,stock,common_price,super_price,concat("'.$domain.'", img) img')
->select()->toArray();

这种方法就是避免了数据的重新遍历,直接在查数据的时候就把域名拼接上,所以性能应该就会好点(具体没测,个人认为)

可能举例有点复杂,下面是concat()函数的具体用法:

mysql concat(str1,str2,…) ,可以拼接多个函数

 SELECT CONCAT('hello',',word!') str;结果为:'hello,word!'

值得注意的是:如果存在参数为null,则结果直接为null

MySQL中CONCAT()的用法的更多相关文章

  1. 详解MySQL中concat函数的用法(连接字符串)

    MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制 ...

  2. MySql中concat函数的用法(链接字符串)

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  3. mysql中FIND_IN_SET函数用法

    本篇文章主要介绍mysql中FIND_IN_SET函数用法,用来精确查询字段中以逗号分隔的数据 以及其与 like 和 in 的区别 1.问题发现 之前在做工作任务时有这么一个需求:需要用接口所传的服 ...

  4. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  5. MySQL中concat函数(连接字符串)

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  6. MySQL中concat函数

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  7. mysql中limit的用法实例解析

    mysql中limit的用法解析. 在mysql中,select * from table limit m,n.其中m是指记录开始的index,从0开始,n是指从第m条开始,取n条. 例如: mysq ...

  8. Mysql中limit的用法详解

    Mysql中limit的用法详解 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,为我们提供了limit这样一个功能. SELECT * FROM table LIMIT [offset ...

  9. mysql中CONCAT值为空的问题解决办法

    在mysql中concat函数有一个特点就是有一个值为null那么不管第二个字符有多少内容都返回为空了,这个特性让我们在实例应用中可能觉得不方便,但实现就是这样我们需要使用其它办法来解决. 天在做op ...

随机推荐

  1. linux 03 命令 续

    linux 03 命令 续 一.vim 两种操作方式:新文件 pyvip@Vip:~/demo/2_3$ vim demo.txt #操作一个新文件 一开始进入的是命令模式,按i进入插入模式,开始编辑 ...

  2. phpcms9.6 注入分析

    phpcms9.6 注入分析 漏洞促发点\phpcms\modules\content\down.php $a_k = trim($_GET['a_k']); if(!isset($a_k)) sho ...

  3. 事务&数据库连接池&DBUtils

    事务的特性 原子性 指的是 事务中包含的逻辑,不可分割. 一致性 指的是 事务执行前后.数据完整性 隔离性 指的是 事务在执行期间不应该受到其他事务的影响 持久性 指的是 事务执行成功,那么数据应该持 ...

  4. NET Core的分布式批处理框架

    NET Core的分布式批处理框架 Swift是什么 从文章的标题可知:此Swift非Apple那个Swift,只是考虑这个词的含义比较适合. Swift是一个基于.NET Core的分布式批处理框架 ...

  5. 关于office转换成pdf组件服务中的DCOM配置问题

    在开始->运行 中录入“dcomcnfg” 单击“确定”后弹出“组件服务”窗口 依次选择“组件服务”->“计算机”->“我的电脑”->“DCOM配置” 在“DCOM配置”下找到 ...

  6. ES5数组遍历

    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. array.reduce(function(total, currentValue, curren ...

  7. Java常用函数式接口--Consumer接口andThen()方法使用案例(二)

    Java常用函数式接口--Consumer接口使用案例

  8. Kendo MVVM 数据绑定(三) Click

    Kendo MVVM 数据绑定(三) Click Click 绑定可以把由 ViewModel 定义的方法不绑定到目标 DOM 的 click 事件.当点击目标 DOM 元素时触发 ViewModel ...

  9. 31全志r58平台Android4.4.2下打开USB摄像头

    31全志r58平台Android4.4.2下打开USB摄像头 2018/10/26 16:00 版本:V1.0 开发板:SC5806 1.系统编译:(略) 2.需要修改的文件: W:\r58_andr ...

  10. [选择排序] 时间复杂度O(n^2)

    思路:从未排序的序列中,找到最小的元素,放到序列的起始位置, 再从剩下没排序的里面,找到最小的,放到已经排序的末尾. 原地操作几乎是选择排序的唯一优点,当空间复杂度要求较高时,可以考虑选择排序:实际适 ...