在MySQL中的子字符串之间提取文本

问题描述

假设这是您的数据,德语始终在英语之前,那么:

select substring_index(substring_index(col, '[:de]', -1), '[:en]', 1)

如果不是这种情况,则可以测试不同的可能性:

select (case when col like '%[:de]%[%:en]%'
             then substring_index(substring_index(col, '[:de]', -1), '[:en]', 1)
             when col like '%[:de]%[%:]%'
             then substring_index(substring_index(col, '[:de]', -1), '[:]', 1)
             else substring_index(col, '[:de]', -1)
       end)

解决方法

我有一个像下面这样的文字

[:de]

15岁的BB2女士在holzbauweise的rkische Gulet的眉毛,Annehmlichkeiten的游艇和Eleganz
einer的专业游艇,durch的高品质的盲人眉毛,glichen Holzverare的时尚和15岁的女孩密西西比州杜尚卡宾/ WC。Salon and
Deck sind ausgesprochen gro脽z眉毛演出angelegt和mit edlem Mobiliar
ausgestattet。专业人士和erfahrene乘员组盲人zu ssorgen和Ihnen einen Rundumservice。

_[:en]

BB2的高度为37 x 10
m,旨在营造轻松休闲的氛围,展现优雅的格调,是土耳其木制双桅帆船的完美典范之一,拥有专属游艇的所有设施。15间带淋浴和卫生间的现代空调舱房专业和经验丰富的工作人员非常熟悉如何确保客人感到安全和舒适并提供周到的服务。

[:]_

[:en]代表英文文本,[:de]代表德语文本

想要在MySQL中输出一种语言。仅提取德语的查询将是什么?