mysql中字符串的连接

来源:互联网 发布:不干胶打印软件 编辑:程序博客网 时间:2024/05/21 22:40

做功能存储显示处理意见时,需要实现往数据库中累积添加数据,我采用方法是:在sql语句中实现字符串的连接,这里使用函数对字符串进行连接,有两个函数:

1.​concat (str1,str2…)

function commithandling(){    $suggestion=$this->one['username'].":".$_POST["suggestion"]."/n";    $id=$_POST["id"];    $sql="update warningtable set handlingsuggesion=concat(handlingsuggesion,?) where ID=?;";    $this->db->query($sql,array($suggestion,$id));}

2.concat_ws(separator,str1,str2,…)

function commithandling(){    $suggestion=$this->one['username'].":".$_POST["suggestion"]."/n";    $id=$_POST["id"];    $sql="update warningtable set handlingsuggesion=concat_ws(' ',handlingsuggesion,?) where ID=?;";    $this->db->query($sql,array($suggestion,$id));}

这两种方法都可以实现数据库中的字符串的连接,但是两者还是有区别的:

concat:
返回结果连接后的字符串,若参数中有一个null值,则返回值为null

concat_ws:
返回结果连接后的字符串,若参数中有一个null值,返回值会忽略那个null值,分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

separator是分隔符,是用于放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。​

今天在使用concat时,因为没有注意,第一次添加数据时,handlingsuggesion字段中的值是空的,则concat的返回值为null,所以数据库中一直显示为空,无值
所以在使用时要注意这两者的区别。

若是大家有什么其它方法欢迎分享

0 0
原创粉丝点击