Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql IF语句中的SUBSTR()函数_Mysql_Sql_If Statement_Substring - Fatal编程技术网

Mysql IF语句中的SUBSTR()函数

Mysql IF语句中的SUBSTR()函数,mysql,sql,if-statement,substring,Mysql,Sql,If Statement,Substring,查询: SELECT if(substr(link, 1, 2)='y_', 'https://www.youtube.com/watch?v='substr(link,3), 'https://vimeo.com/'substr(link,3)) as link, `title` FROM `video` WHERE `reg_id` = '101' 在上面的查询中,当表达式为true时,我不能使用substr(link,3)函数。在v=之后,我想得到表中link列的子字符串值 上面的查

查询:

SELECT if(substr(link, 1, 2)='y_', 'https://www.youtube.com/watch?v='substr(link,3), 'https://vimeo.com/'substr(link,3)) as link, `title`
FROM `video`
WHERE `reg_id` = '101'  
在上面的查询中,当表达式为
true
时,我不能使用
substr(link,3)
函数。在
v=
之后,我想得到表中
link
列的子字符串值


上面的查询引发了一些错误。所以请帮我解决这个问题。答案将不胜感激。

您不能通过逐个书写来梳理字符串。必须使用CONCAT函数

SELECT if(substr(link, 1, 2)='y_', CONCAT('https://www.youtube.com/watch?v=',substr(link,3)), CONCAT('https://vimeo.com/',substr(link,3))) as link, `title`
FROM `video`
WHERE `reg_id` = '101'  

不能通过逐个写入字符串来梳理字符串。必须使用CONCAT函数

SELECT if(substr(link, 1, 2)='y_', CONCAT('https://www.youtube.com/watch?v=',substr(link,3)), CONCAT('https://vimeo.com/',substr(link,3))) as link, `title`
FROM `video`
WHERE `reg_id` = '101'  

您可以使用
CONCAT()
函数将两个字符串添加到一起:

SELECT if(substr(link, 1, 2)='y_', CONCAT('https://www.youtube.com/watch?v=',substr(link,3)), CONCAT('https://vimeo.com/',substr(link,3))) as link, `title`
FROM `video`
WHERE `reg_id` = '101'  

您可以使用
CONCAT()
函数将两个字符串添加到一起:

SELECT if(substr(link, 1, 2)='y_', CONCAT('https://www.youtube.com/watch?v=',substr(link,3)), CONCAT('https://vimeo.com/',substr(link,3))) as link, `title`
FROM `video`
WHERE `reg_id` = '101'  

在mysql中,如果要连接字符串,则需要使用concat()函数:

SELECT if(substr(link, 1, 2)='y_', concat('https://www.youtube.com/watch?v=',substr(link,3)), concat('https://vimeo.com/',substr(link,3))) as link, `title`
FROM `video`
WHERE `reg_id` = '101'  

在mysql中,如果要连接字符串,则需要使用concat()函数:

SELECT if(substr(link, 1, 2)='y_', concat('https://www.youtube.com/watch?v=',substr(link,3)), concat('https://vimeo.com/',substr(link,3))) as link, `title`
FROM `video`
WHERE `reg_id` = '101'  

Shihas认为如果解决了你的问题,那么回答一个正确的答案。这有助于其他依赖您的问题获取信息的用户。以上所有答案都是正确的。为了给它打上正确的标记,我不知道哪个答案是最先贴出来的。由于您是要求我更正的人,我将标记您的答案(Y):D@Shihas如果答案是正确的,请考虑正确答案。这有助于其他依赖您的问题获取信息的用户。以上所有答案都是正确的。为了给它打上正确的标记,我不知道哪个答案是最先贴出来的。因为是你让我更正的,所以我会记下你的答案(Y):D