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
2. 그런 다음 테스트 테이블에 레코드를 추가합니다. xml 형식으로 기록됩니다.
3. 먼저 EXTRACTVALUE 함수를 사용하여 Zhang San이라는 노드의 콘텐츠를 찾습니다. 아래 출력 상자에서 찾은 Zhang San 노드의 내용을 볼 수 있습니다. xpath 형식은 다음과 같습니다
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'
4. 이제 클래스 아래의 모든 이름 노드의 값을 쿼리해야 합니다. 마디.
extractvalue(testxml,'/Student/Class/Name'
5. 다음으로 updatexml 함수를 사용하여 xml의 노드 내용을 변경합니다.
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'), Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename') ,把zhangsan节点内容换为updatename。
6. 위 결과에서 updatexml을 사용한 후 xml 구조에 이름 노드가 하나 줄어든 것을 알 수 있습니다. 교체할 때 업데이트된 값을 노드에 추가하기만 하면 됩니다.
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'), Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename ')
7. 데이터베이스 콘텐츠를 업데이트하려면 Update 문을 사용하세요.
UPDATE testtableSET testxml= Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','<Name>updatename</Name>')
Notes
UpdateXml을 사용하여 선택한 필드의 내용만 변경했으며 데이터베이스는 업데이트하지 않았습니다. 데이터베이스를 업데이트해야 하는 경우 업데이트 문으로 업데이트해야 합니다
위 내용은 MySQL 데이터베이스에서 XML 쿼리 및 운영 경험 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!