我正在尝试获取OXSEO表的OXSEOURL。
结构:
oxobjectid | oxseourl | oxparams
数据:
http://imageshack.com/a/img268/7443/3xr4.png
http://imageshack.com/a/img42/315/8bdu.png
我最深的SEO网址在OXPARAMS字段中总是具有更高的价值
只有数字值,其他值永远不会计数..
返回应该是:
http://imageshack.com/a/img29/8404/4jbv.png
我昨天找到了一个解决方案,但速度非常慢,现在我想尝试更快的方法 因此,我希望以最大oxparams值获得相同oxobjectid的oxseourl 我有超过330.000行,所以每个ms都算......
我只需选择盯着“tbproduct_”objectid的产品的网址。
我的查询:
SELECT seo2.oxseourl, seo2.oxobjectid, seo2.oxparams
FROM oxseo AS seo2
JOIN (
SELECT oxobjectid,
MAX(oxparams) AS maxparam
FROM oxseo
GROUP BY
oxobjectid
) AS usm
ON usm.maxparam = seo2.oxparams
WHERE seo2.oxobjectid LIKE '%tbproduct_%'
AND seo2.oxparams REGEXP '^-?[0-9]+$'
但是这会返回产品的相同行。
感谢您的帮助。
答案 0 :(得分:1)
有点优化,速度更快:
SELECT seo.oxseourl, seo.oxobjectid, MAX(seo.oxparams)
FROM oxseo AS seo
WHERE seo.oxobjectid LIKE 'tbproduct_%' AND seo.oxparams REGEXP '^-?[0-9]+$'
GROUP BY seo.oxseourl, seo.oxobjectid