2011-12-09 39 views
0

我有一個數據庫表,其中包含上傳圖像的路徑。有時候這個圖像指向一個外部服務器,但有時它是一個指向同一個服務器的相對路徑。根據前4個字符將文本添加到選定的數據庫列

在創建SQL查詢,我需要做此項檢查:

  1. 如果路徑的第4個字符,http然後就返回
  2. 否則在前面加上硬編碼的URL字符串的路徑

我一直在努力使IF check檢查和SUBSTRING工作。 任何想法?

回答

2

前綴字符串

select IF(LEFT(column,4) = "http", column, CONCAT("string", column)) FROM table 

追加字符串

select IF(LEFT(column,4) = "http", column, CONCAT(column, "string")) FROM table 
+0

leo希望* *(不加前綴)將硬編碼的URL字符串添加到路徑中。 –

+0

我們走了,只是一個切換concat col的例子 – Lee

+0

實際上第一個例子完美的工作,因爲我需要預先安排,這正是問題所在。公認! –

1

是否這樣?

CASE WHEN LEFT(url, 4) = 'http' THEN url ELSE CONCAT(<your hard-coded url>, url) END 
+0

LEO想*追加*硬編碼的URL字符串的路徑。 –

+0

@MarkBannister - 糟糕,用CONCAT()更新。我已經做了一個前置(基於標題和對我有意義的行爲)。雖然附錄可能是正確的,因爲這是問題中的措辭...... – MatBailie

1

嘗試:

select concat(path, case substring(path,1,4) 
        when 'http' then '' 
        else hard_coded_url end) 
from 
... 
相關問題