相关疑难解决方法(0)

63
推荐指数
5
解决办法
12万
查看次数

Mysql可以拆分列吗?

我有一个以逗号分隔数据的列:

1,2,3
3,2,1
4,5,6
5,5,5
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行搜索,以单独查询CSV字符串的每个值.

0<first<5   and  1<second<3  and  2<third<4 
Run Code Online (Sandbox Code Playgroud)

我知道我可以返回所有查询并自行拆分并自己进行比较.我很好奇是否有办法这样做,所以mysql做了处理工作.谢谢!

mysql split

58
推荐指数
4
解决办法
15万
查看次数

MySQL使用ExtractValue(XML,'Value/Values')来获取所有多个值(将一列拆分为行)

我有一个包含多个值的非正常字段,因为它是Xml数据,直到现在才打算查询.MySQL能否将此xml列拆分为多行?

NameA   |   <Xml><Values<Value>1</Value><Value>2</Value><Value>3</Value></Values></Xml>
NameB   |   <Xml><Values<Value>1</Value><Value>2</Value></Values></Xml>
NameC   |   <Xml><Values<Value>1</Value><Value>2</Value><Value>3</Value><Value>4</Value></Values></Xml>
Run Code Online (Sandbox Code Playgroud)

我想要

NameA   |   1
NameA   |   2
NameA   |   3
NameB   |   1
Run Code Online (Sandbox Code Playgroud)

像这样的MSSQL/TSQL解决方案

SELECT
    I.Name,
    Value.value('.','VARCHAR(30)') AS Value 
FROM
    Item AS I
CROSS APPLY
    Xml.nodes('/Xml/Values/Value') AS T(Value)
WHERE
    I.TypeID = 'A'
Run Code Online (Sandbox Code Playgroud)

但在MySQL中,我只能得到

NameA   |   123
NameB   |   12
NameC   |   1234
Run Code Online (Sandbox Code Playgroud)

SELECT
    I.`Name`,
    ExtractValue(Xml,'/Xml/Values/Value') AS ListOfValues
FROM
    Item AS I
WHERE
    I.TypeID = 'A'
;
Run Code Online (Sandbox Code Playgroud)

有什么优雅的方法可以在MySQL中拆分xml吗?

xml mysql

6
推荐指数
1
解决办法
1万
查看次数

将分隔字符串值拆分为行

一些外部数据供应商想要给我一个数据字段 - 管道分隔的字符串值,我发现这很难处理。

如果没有应用程序编程语言的帮助,有没有办法将字符串值转换为行?

然而存在一个困难,该字段具有未知数量的分隔元素。

有问题的数据库引擎是 MySQL。

例如:

Input: Tuple(1, "a|b|c")

Output:

Tuple(1, "a")
Tuple(1, "b")
Tuple(1, "c")
Run Code Online (Sandbox Code Playgroud)

mysql sql database delimiter

5
推荐指数
1
解决办法
2万
查看次数