0

OXSEO テーブルの OXSEOURL を取得しようとしています。

構造:
oxobjectid | オックスソウル | オックスパラムス

データ:
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_」オブジェクト ID で始まる製品の URL を選択するだけです。

私のクエリ:

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