Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql来设置xml值_Sql_Mysql_Xml - Fatal编程技术网

sql来设置xml值

sql来设置xml值,sql,mysql,xml,Sql,Mysql,Xml,我是mySql的新手。 我正在尝试替换表的xml列中的值 我的选择方法有效 SELECT * FROM `comics` WHERE ExtractValue(xml,'comic/pageNumber') = 6 我的替换方法没有。我已经搜索了一段时间正确的语法了 SET xml.modify( replace value of ('comic/pageNumber') with 5 ) 一些背景: 当我删除漫画页面时,会出现这种情况 它在页码上留下了一个空白,之后我会: 反复阅读所有的漫

我是mySql的新手。 我正在尝试替换表的xml列中的值

我的选择方法有效

SELECT * FROM `comics` WHERE ExtractValue(xml,'comic/pageNumber') = 6
我的替换方法没有。我已经搜索了一段时间正确的语法了

SET xml.modify(
replace value of ('comic/pageNumber') with 5
)
一些背景:

当我删除漫画页面时,会出现这种情况

它在页码上留下了一个空白,之后我会:

反复阅读所有的漫画,并删除页码中的任何空白


遍历所有页码大于已删除页面的漫画,并将其页码减少1。

您最好将字段实际存储在表中,而不是只存储一个包含xml的字段。那么下面的方法就行了。否则,使用关系数据库就没有什么意义了

BEGIN;
DELETE FROM `comics` 
    WHERE `comicID` = :id AND `pageNumber` = :page;
UPDATE `comics` SET `pageNumber` = `pageNumber` - 1 
    WHERE `comicID` = :id AND `pageNumber` > :page;
COMMIT;
怎么样

UPDATE comics 
SET xml = UpdateXML(xml,'comic/pageNumber', '<pageNumber>5</pageNumber>')
WHERE ExtractValue(xml,'comic/pageNumber') = 6
更新漫画
设置xml=UpdateXML(xml,'comic/pageNumber','5')
其中ExtractValue(xml,'comic/pageNumber')=6

在MySQL 5.1版上测试

UPDATE `comics`
SET xml = UpdateXML(xml, 
                'comic/pageNumber', 
                concat('<pageNumber>',(ExtractValue(xml,'comic/pageNumber')+1),'</pageNumber>'))
WHERE ExtractValue(xml,'comic/pageNumber') >= 1
更新`漫画`
设置xml=UpdateXML(xml,
“漫画/页码”,
concat(“”,(提取值(xml,'comic/pageNumber')+1,“”))
其中ExtractValue(xml,'comic/pageNumber')>=1

对不起,我非常热衷于用xml存储所有内容。@SketchBookGames-那就不要使用MySQL。你能在xml列中至少发布一个表示值的xml片段吗?