>  기사  >  데이터 베이스  >  MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

黄舟
黄舟원래의
2017-08-01 11:26:548391검색

mysql에는 xml을 조작하는 기능이 내장되어 있습니다. 이는 각각 ExtractValue() 및 UpdateXML() 함수입니다.

구문: ​​

EXTRACTVALUE (fiedname, XPathstring);

첫 번째 매개변수: fiedname은 테이블의 필드 이름인 문자열 형식입니다. 두 번째 매개변수: XPathstring(Xpath 형식의 문자열)을 찾을 수 있습니다. 온라인 튜토리얼. 함수: 대상 XML

UPDATEXML(fiedname, XPathstring, new_value)에서 쿼리된 값이 포함된 문자열을 반환합니다. 첫 번째 매개변수: fiedname은 문자열 형식이며, 이는 테이블의 필드 이름입니다.

세 번째 매개변수: new_value, 문자열 형식, 발견된 정규화된 데이터를 대체합니다. 함수: 문서에서 정규화된 노드의 값을 변경합니다.

권장되는 관련 mysql 비디오 튜토리얼: "mysql tutorial"

1 먼저 만듭니다. 테스트 테이블.

CREATE TABLE `testtable` (   `testxml` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

2. 그런 다음 테스트 테이블에 레코드를 추가합니다. xml 형식으로 기록됩니다.

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

3. 먼저 EXTRACTVALUE 함수를 사용하여 Zhang San이라는 노드의 콘텐츠를 찾습니다. 아래 출력 상자에서 찾은 Zhang San 노드의 내용을 볼 수 있습니다. xpath 형식은 다음과 같습니다

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

4. 이제 클래스 아래의 모든 이름 노드의 값을 쿼리해야 합니다. 마디.

 extractvalue(testxml,'/Student/Class/Name'

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

5. 다음으로 updatexml 함수를 사용하여 xml의 노드 내용을 변경합니다.

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),  
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
,把zhangsan节点内容换为updatename。

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

6. 위 결과에서 updatexml을 사용한 후 xml 구조에 이름 노드가 하나 줄어든 것을 알 수 있습니다. 교체할 때 업데이트된 값을 노드에 추가하기만 하면 됩니다.

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),  
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

7. 데이터베이스 콘텐츠를 업데이트하려면 Update 문을 사용하세요.

UPDATE testtableSET testxml=  Updatexml(testxml,&#39;/Student/Class/Name[self:text()="zhangsan"]&#39;,&#39;<Name>updatename</Name>&#39;)

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유

Notes

UpdateXml을 사용하여 선택한 필드의 내용만 변경했으며 데이터베이스는 업데이트하지 않았습니다. 데이터베이스를 업데이트해야 하는 경우 업데이트 문으로 업데이트해야 합니다

위 내용은 MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.