当前位置:C++技术网 > 资讯 > mysql字符串拼接函数CONCAT的使用

mysql字符串拼接函数CONCAT的使用

更新时间:2016-10-08 14:01:07浏览次数:1+次

    之前在做一个mysql的左连接,发现需要用A表的一个字段的值在B表的一个字段中做模糊查询,即like查询。所以,就需要在一条语句中实现。最终的语句是:
SELECT dep_id,dep_balance,card_id,user_id,user_name,card_list FROM t_deposit LEFT OUTER JOIN t_user ON card_list like CONCAT('%',card_id,'%')

    这是要将表t_deposit和表t_user进行左连接,也就是输出t_deposit表的所有信息,同时根据每一条信息接上用户的信息。而连接的条件就是,t_deposit表的card_id字段唯一存在于t_user表的card_list字段字符串中。这个唯一存在是表操作时严格控制的。所以,这里才可以用like来模糊查询。
    左连接的时候会根据t_deposit表的每一条记录去连接对应的用户信息,也就是会一条条的去提取t_deposit表记录对应的t_user表符合条件的信息。而条件使用的是like,所以才需要字符串拼接函数CONCAT。
    mysql CONCAT()函数用于将多个字符串连接成一个字符串。函数的用法:CONCAT(str1,str2,…),可以连接多个字符串,返回一个完整的字符串。在最终的语句中,我们可以看到,card_id被用在CONCAT函数中了。被查询的是card_list。因为左连接是分别对每一条语句进行执行的,所以查询条件也就是针对t_deposit表的每一条记录。所以card_id是确定的一个值,而且因为card_id是字符串类型,所以也就可以被用在函数里。CONCAT的第一个和第三个分别用%,则表示左右任意匹配模糊查询。CONCAT('%',card_id,'%')返回的就是根据每一条记录拼接好的查询条件,被应用于like查询。
    如果没有想到CONCAT函数来做字符串拼接,你可能会想到变量。不过,会让语句变得更加复杂。CONCAT函数是mysql非常基础而重要的函数,所以在此记录一下。