从字符串中查找子字符串

时间:2012-12-24 07:07:42

标签: mysql

我正在使用mysql数据库。我想从字符串中提取子字符串,前提是字符串包含一个字符('/')。如果字符串中不包含“/”字符,则应返回void字符串。

例如,假设字符串为MY_FILE_PATH_CODE/dir1/dir2

查询

select substr(string,instr(string ,'/')) from ( select string  from ac1_control );
   Return value : /dir1/dir2 (correct as i want)

问题是如果我的字符串只是MY_FILE_PATH_CODE,那么相同的查询返回我不想要的MY_FILE_PATH_CODE,我想返回一个空字符串。

2 个答案:

答案 0 :(得分:0)

您可能必须明确检查,可能是这样:

select (case when instr(string, '/') = 0 then "" else substr(string, instr(string, '/')) end) from ( select string from ac1_control )

答案 1 :(得分:0)

在oracle中: [基于假设void string为null并使用您的orig。串

SELECT REPLACE ( SUBSTR('MY_FILE_PATH_CODE',INSTR('MY_FILE_PATH_CODE','/') ),
                'MY_FILE_PATH_CODE') 
  FROM dual;