私はスコアと日付のリストを格納する高得点テーブルを持っています。私は一ヶ月以上前にトップ10に入っていないすべての得点を見つけたいと思います。 トップ10にない古い行を見つけてMySQLを使用して削除する方法
はヶ月前に少なくとも提出されたすべての項目を見る見つけ、 のトップ10にそれらの古いではありません:それは何SELECT userId FROM highscores
WHERE DATEDIFF(FROM_UNIXTIME(date),
DATE_SUB(CurDate(), INTERVAL 1 MONTH)) < 0
ORDER BY score DESC LIMIT 10,18446744073709551615
を:私は、私が欲しいものの一部である次のクエリを持っています得点はです。
私はそれが何をしたい:
すると、すべてのスコアヶ月前に少なくとも提出されたすべての項目を見る見つけ、 のトップ10に含まれていない
簡単なことですか?
編集:私が使用しているMySQLのバージョンでは、サブクエリがLIMITに対応していません。私はそれをしようとすると、私は、次のエラーが表示さ:
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
編集を2:私はそれが簡単なことと考えましたので、私は実際に私は、SELECT文を使用した、テーブルからこれらのスコアを削除したいのですが選択を削除に変換するには、サブクエリに慣れていないし、同じテーブルに参加してそこから削除することもできません。
ホストは一時テーブルをサポートしていますか?あなたは、新しいテンポラリテーブルにハイスコアを選択することができます。 – Zoredache
@Ed以下の編集を参照してください.LIMITの制限を解決します:) – Galz
@Ed? DELETEクエリは役に立ちましたか?それは動作しましたか? – Galz