我正在进行数据库迁移,需要将数据从db1传递到db2。我得到的sql查询结果与此类似。和[:es]或表示语言的格式。
name
------------
<!--:es-->Nombre<!--:--><!--:en-->Name<!--:-->
<!--:es-->Ciudad<!--:--><!--:en-->City<!--:-->
<!--:es-->Pais<!--:--><!--:en-->Country<!--:-->
<!--:es-->Email<!--:--><!--:en-->Email<!--:-->
<!--:es-->Telefono<!--:--><!--:en-->Phone<!--:-->
[:es]Apodo[:en]Nikname[:]
[:es]Tipo[:en]Type[:]
[:es]Categoria[:en]Category[:]
[:es]Distribuidor[:en]Distributor[:]
Value 1
Value 2
Value 3
有些数据带有格式 <!--:es-->Field<!--:es-->...
其他的有格式 [:es]Apodo[:en]Nikname[:]
还有一些没有特殊格式。例如 Value 1
, Value 2
以及 Value 3
.
我只需要名字,没有任何特殊的分隔符。你知道怎么做到吗。
预期结果是
name
------------
Nombre
Ciudad
Pais
Email
Telefono
Apodo
Tipo
Categoria
Distribuidor
Value 1
Value 2
Value 3
更新
我的sql版本是
mysql -V
mysql Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using EditLine wrapper
1条答案
按热度按时间qncylg1j1#
我得用下面的方法来处理这个案子
在case-when的帮助下,我首先使用locate函数确定格式的类型,一旦通过substring\u index函数确定了路由,就排除了我不需要的文本,我只得到与我相关的文本
我添加了一个sqlfiddle来测试
这个答案在这种情况下很有用