0

私の脳は本当に疲れているかもしれませんが、この単純なクエリについて頭を働かせることができなかったようです.列から「,」などの区切り記号内の最後の部分文字列を抽出したいですか? 私は REVERSE または RIGHT を使用することを考えていました..しかし、結果は本当に奇妙なものになっています...

エントリを持つテーブルLOANSにテーブル列「DESCRIPTION」があるとしましょう

Changed Loan Laptop from "IT-X130E-10" to "IT-X130E-9".

そして最後の部分文字列が欲しい

IT-X130E-9

区切り文字 '"' 内で、より明確になることを願っています

4

2 に答える 2

1

これの鍵はreverse()、いくつかのブルートフォースです:

select replace(replace(right(val, instr(substring(reverse(val), 3, 100), '"')+2), '"', ''), '.', '')
from (select 'Changed Loan Laptop from "IT-X130E-10" to "IT-X130E-9".' as val) t

'"'これは、文字列にまたはが含まれていないことを前提としています'.'

于 2013-06-21T02:20:06.960 に答える
1

SUBSTRING INDEX(str,delim,count) を試すことができます

SELECT SUBSTRING_INDEX(
    SUBSTRING_INDEX('yourString', '"', -2), '"', 1);
于 2013-06-21T02:39:38.917 に答える