MySQL字符串处理函数concat_ws(),locate()

1,concate_ws函数

 

MySQL字符串处理函数concat_ws()和MySQL字符串处理函数concat()类似,但是处理的字符串不太一样,下面就为您详细介绍MySQL字符串处理函数concat_ws()。

concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接
如连接后以逗号分隔

  1. mysql> select concat_ws(',','11','22','33');  
  2.  
  3. +-------------------------------+  
  4. | concat_ws(',','11','22','33') |  
  5. +-------------------------------+  
  6. | 11,22,33      |  
  7. +-------------------------------+  
  8.        1 row in set (0.00 sec)  

和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL

  1. mysql> select concat_ws(',','11','22',NULL);  
  2. +-------------------------------+  
  3. | concat_ws(',','11','22',NULL) |  
  4. +-------------------------------+  
  5. | 11,22 |  
  6. +-------------------------------+  
  7.        1 row in set (0.00 sec)  

 

2,locate函数

  • LOCATE(substr,str) , LOCATE(substr,str,pos)

第一个语法返回字符串 str中子字符串substr的第一个出现位置。第二个语法返回字符串 str中子字符串substr的第一个出现位置, 起始位置在pos。如若substr 不在str中,则返回值为0。

mysql> SELECT LOCATE('bar', 'foobarbar');

        -> 4

mysql> SELECT LOCATE('xbar', 'foobar');

        -> 0

mysql> SELECT LOCATE('bar', 'foobarbar',5);

        -> 7

这个函数支持多字节字元,并且只有当至少有一个参数是二进制字符串时区分大小写。

 

 

 

$query = 'INSERT INTO *PREFIX*hr_jobseeker ('.($jid ? 'id,' : '').'company_id, job_id, source, name,email,phone,date_added)

                values '.$sql.' ON DUPLICATE KEY UPDATE

                job_id=values(job_id),

                source=IF(locate("upload",source),source,concat_ws(",",source,"upload")),

                name=values(name),

                email=values(email),

                phone=values(phone),

                date_added=values(date_added),

                id=LAST_INSERT_ID(id)';

 

 

猜你喜欢

转载自xialluyouyue.iteye.com/blog/1995624