0

我正在尝试获取我的 OXSEO 表的 OXSEOURL。

结构:
oxobjectid | 牛瑟尔 | oxparams

数据:http://imageshack.com/a/img268/7443/3xr4.png http://imageshack.com/a/img42/315/8bdu.png
最深的 SEO URL 在 OXPARAMS 字段中总是具有更高的值。 只有数值,其他的从不计算..


返回应该是:

http://imageshack.com/a/img29/8404/4jbv.png

我昨天找到了一个解决方案,但是速度很慢,现在我正在尝试一种更快的方法来做到这一点。
所以我想获得具有最大 oxparams 值的相同 oxobjectid 的 oxseourl。
我有超过 330.000 行,所以每个毫秒都很重要。

我只需要选择以“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]+$'

但这会为产品返回相同的行。

谢谢你的帮助。

4

1 回答 1

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
于 2014-05-14T15:17:19.553 回答