2012-05-08 12 views
1

私の場合は、誰かが600kレコードのニュースウェブデータに投稿したときに、同じタイトルを最後の数時間掲示した人と同じタイトルを作成できます。最後に100件のレコードでタイトルごとにmysqlを検索

data: sid|title|desc|timestamp|userid 

通常私が使用します。

select sid from ".$prefix."_stories WHERE title = '".$subject."' limit 0,1 

それは、彼らが同じタイトルを持っている場合は、ポスターに気づくそして$subjectのすべてのデータを検索します。 最後の100レコードを検索するクエリが必要です。

私は次のことを試してみましたが、これは動作しませんでした:

select sid from ".$prefix."_stories WHERE title = '".$subject."' and sid > MAX(sid)-100 limit 0,1 

答えて

0

:これは最後の100件のレコードを選択します

SELECT sid, title 
FROM ".$prefix."_stories 
ORDER BY sid DESC 
LIMIT 100 

私のコメントでマイケルによって

良い点...コードとさらにコメントを編集:where句を削除

は、これが...最後の100件のレコードを選択するSEにチェックするループを実行しますeタイトルまたは要約が既に存在する場合:

while ($row = $result) { 
    if $subject = $row['title'] { 
     $duplicate = TRUE; 
     endwhile; 
    } 
} 

結果データを比較するだけです。 100のおかげでマイケル

+0

これは、100件の一致するタイトルを返します。最後に追加された100件のレコードを '$ subject'で検索するのではありません。 –

+0

ありがとう@Michael私は自分の答えを更新しました。 –

+0

私は知っているように..これはまだすべてのレコードで同じタイトルを持っているすべてのsidを収集し、最後の100のレコードを表示..実際に私はそれが最後の100レコードのみを検索する必要があります..とにかく感謝! –

2

あなたは最後の100 sidを返すサブクエリでこれを行うことができます。ここでは簡潔にするためにPHPの連結を省略しています。

だけでこれを行う、(一番下に、最新のを入れます)すべてのレコードを1ずつ増加、あなたは主キーを持っていると仮定すると
SELECT 
    last100.sid 
FROM 
    (
    SELECT 
     sid, 
     title 
    FROM $prefix._stories 
    ORDER BY sid DESC LIMIT 100 
) last100 
WHERE 
    last100.title = '$subject' 
+0

ありがとうございます!私はこのクエリをテストしましたが、うまくいかない、結果が見つかりません:) –

+0

ありがとう!私は前に、このクエリでテストしましたが、結果が得られませんでした..例えば:データは120レコードあります:タイトル "aaa"のレコードsid = 50、次に同じtitle = "aaa"のレコードsid = 120あなたのクエリはid = 50のレコードしか表示しないので、id = 120の最後のレコードは見つかりません。だから悪い..どんな理想? –

+0

申し訳ありませんが、私はいくつかのタイプミスをしていませんでした。実際、それはとてもうまく動作します。 –

0

SIDでソート(降順ので、最新のエントリが最初に来る)とリミット結果:

$sql = "select t.sid from (select sid, title from ".$prefix."_stories ORDER BY sid DESC LIMIT 0,100) t WHERE title = '".$subject."';" 

は、SQLインジェクション(より良い:使用準備された文/ PDO)を回避するために、対象と$をチェクしてください。

+0

これは私が元々私の答えを持っていたのと同じです。マイケルが私のコメントで指摘したように、これは最後の100レコードを検索するのではなく、 '$件名 'を含む'タイトル 'を含む100レコードまでを収集します。 –

+0

ありがとう、それを修正しました。 – ccKep

関連する問題