我有一個數據庫表,其中包含上傳圖像的路徑。有時候這個圖像指向一個外部服務器,但有時它是一個指向同一個服務器的相對路徑。根據前4個字符將文本添加到選定的數據庫列
在創建SQL查詢,我需要做此項檢查:
- 如果路徑的第4個字符,
http
然後就返回 - 否則在前面加上硬編碼的URL字符串的路徑
我一直在努力使IF check
檢查和SUBSTRING
工作。 任何想法?
我有一個數據庫表,其中包含上傳圖像的路徑。有時候這個圖像指向一個外部服務器,但有時它是一個指向同一個服務器的相對路徑。根據前4個字符將文本添加到選定的數據庫列
在創建SQL查詢,我需要做此項檢查:
http
然後就返回我一直在努力使IF check
檢查和SUBSTRING
工作。 任何想法?
前綴字符串
select IF(LEFT(column,4) = "http", column, CONCAT("string", column)) FROM table
追加字符串
select IF(LEFT(column,4) = "http", column, CONCAT(column, "string")) FROM table
是否這樣?
CASE WHEN LEFT(url, 4) = 'http' THEN url ELSE CONCAT(<your hard-coded url>, url) END
LEO想*追加*硬編碼的URL字符串的路徑。 –
@MarkBannister - 糟糕,用CONCAT()更新。我已經做了一個前置(基於標題和對我有意義的行爲)。雖然附錄可能是正確的,因爲這是問題中的措辭...... – MatBailie
嘗試:
select concat(path, case substring(path,1,4)
when 'http' then ''
else hard_coded_url end)
from
...
leo希望* *(不加前綴)將硬編碼的URL字符串添加到路徑中。 –
我們走了,只是一個切換concat col的例子 – Lee
實際上第一個例子完美的工作,因爲我需要預先安排,這正是問題所在。公認! –