在x之后但在y之前的不同长度的MYSQL子串

时间:2014-03-06 16:51:18

标签: mysql url substring

我是MYSQL的新手,并使用PhpMyAdmin处理我的数据库。

问题是我将一个URL与常规旧文本混合在一起,我试图提取它以便在其他地方使用。它的长度并不总是一样。

SELECT
 SUBSTRING(description, LOCATE('X', description)+6)
FROM table WHERE id=56;

所以这给了我“X”之后的所有内容。

我需要能够在两个已知标识符之间取出所有内容的东西。 可能的?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

SELECT SUBSTRING_INDEX(SUBSTRING(description, LOCATE('X', description)+6), Y, 1)
FROM table
WHERE id=56;

根据MySQL手册:

SUBSTRING_INDEX(str,delim,count) Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. SUBSTRING_INDEX() performs a case-sensitive match when searching for delim.