我有一个数据库表,其中包含上传图像的路径。有时候这个图像指向一个外部服务器,但有时它是一个指向同一个服务器的相对路径。根据前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
实际上第一个例子完美的工作,因为我需要预先安排,这正是问题所在。公认! –