2017-07-19 71 views
0

查詢:SUBSTR()函數

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' 

在上面的查詢我不能使用substr(link,3)功能時表達是truev=之後我想在表格中得到一個子字符串值link列。

上面的查詢引發了一些錯誤。所以請幫我解決這個問題。將不勝感激。

回答

2

在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' 
+0

謝謝..它的工作原理! – Shihas

+0

@Shihas考慮標記一個正確的答案,如果它解決了你的問題。這有助於依靠您的問題獲取信息的其他用戶。 –

+0

以上所有答案都是正確的。爲了將其標記爲正確,我不知道首先發布了哪個答案。正如你是那個讓我說得正確的人,我會標記你的答案(Y):D – Shihas

1

不能通過一個接一個地寫入字符串來梳理字符串。您必須使用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' 
+0

謝謝..它的工作原理! – Shihas

1

可以使用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' 
+0

謝謝..它的工作原理! – Shihas