我想从更大的字符串中获取一个字符串。要获取的字符串由特定字符分隔。

例如,如果field1是"lipnice sivá <(Poa glauca)>"

我希望它返回"Poa glauca"

该选择语句是什么样的?

分析解答

使用基本字符串函数SUBSTRING_INDEX可以尝试:

SELECT
    SUBSTRING_INDEX(
        SUBSTRING_INDEX('lipnice sivá <(Poa glauca)>', '<(', -1), ')>', 1);

如果您使用的是MySQL 8+,那么我们可以REGEXP_REPLACE作为基于正则表达式的解决方案:

SELECT
    REGEXP_REPLACE('lipnice sivá <(Poa glauca)>', '^.*<\\((.*?)\\)>.*$', '$1');

请点击下面的demo链接查看两个查询。

demo版