根据前4个字符将文本预先添加到选定的数据库列

时间:2011-12-09 10:54:18

标签: mysql sql

我有一个数据库表,其中包含上传图像的路径。有时此图像指向外部服务器,但有时它是指向同一服务器的相对路径。

创建SQL查询时,我需要检查:

  1. 如果路径的前4个字符为http,则只返回
  2. 否则将硬编码的URL字符串添加到路径
  3. 我一直在努力使IF check检查和SUBSTRING工作。 有什么想法吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

喜欢这个吗?

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

答案 2 :(得分:1)

尝试:

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