1,concate_ws函数
MySQL字符串处理函数concat_ws()和MySQL字符串处理函数concat()类似,但是处理的字符串不太一样,下面就为您详细介绍MySQL字符串处理函数concat_ws()。
concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接
如连接后以逗号分隔
- mysql> select concat_ws(',','11','22','33');
- +-------------------------------+
- | concat_ws(',','11','22','33') |
- +-------------------------------+
- | 11,22,33 |
- +-------------------------------+
- 1 row in set (0.00 sec)
和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL
- mysql> select concat_ws(',','11','22',NULL);
- +-------------------------------+
- | concat_ws(',','11','22',NULL) |
- +-------------------------------+
- | 11,22 |
- +-------------------------------+
- 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)';