3
쿼리 할 대상이 아닌 XML 데이터이기 때문에 여러 값을 포함하는 비정규 필드가 있습니다. , 지금까지. MySQL이이 xml 열을 여러 행으로 나눌 수 있습니까?MySQL은 ExtractValue (XML, 'Value/Values')를 사용하여 여러 값을 가져옵니다 (하나의 열을 행으로 분할 함)
표이 MSSQL/TSQL 솔루션처럼
NameA | 1
NameA | 2
NameA | 3
NameB | 1
을 원하는
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>
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'
그러나
MySQL의에서 난 단지 얻을 수NameA | 123
NameB | 12
NameC | 1234
MySQL의에서 XML을 분할하는 어떤 우아한 방법이
SELECT
I.`Name`,
ExtractValue(Xml,'/Xml/Values/Value') AS ListOfValues
FROM
Item AS I
WHERE
I.TypeID = 'A'
;
와
이 있습니까?