我有一个表,其中包含一个user_id和一个items字段。user_id只是一个带有用户id的int,而items是'text‘字段中的一个xml结构化对象。我希望能够看到有关播放器项目的统计信息。例如,谁拥有最多的某项物品,每个人的平均财富,等等。
目前,我必须遍历每一行,然后再次创建一个SimpleXMLElement,并根据特定条件对其进行遍历和过滤。
结构是这样的:库存
例如,如果我想执行一个查询来计算所有条目id为332的条目,这个查询大约需要3-4秒。我们预计会有50k+行(目前是28k),所以如果有任何其他方法可以加速这个过程,那就太好了。
发布于 2012-10-27 11:24:01
像这样使用mysql怎么样?
例如
SELECT * FROM table WHERE inventory like '%<itemid>332</itemid>%';发布于 2012-10-27 11:34:16
根据需要查询这些数据的程度,将其存储为XML可能不是最好的方法;假设您已经做出了决定,许多数据库都支持某种形式的XPath查询,这种查询可用于从XML字段中提取数据。ExtractValue函数的形式,它可以用来提取所需的条件,而不是简单地使用MySQL provides some support (例如,在deefactorial的答案中;如果您的XML中有多个itemid呢?)。
在How to use XPATH in MySQL select?的SO上可以看到一个例子。
https://stackoverflow.com/questions/13096846
复制相似问题