2014-12-11 60 views
0

我有一個MySQL腳本,需要一個數據庫查詢,並根據一些設置切斷一定數量的行。因此,如果我的用戶訂閱了100,000個用戶,並且用戶上傳了110,000個,則該腳本將切斷最後的10,000個。如何使用Elastic Search中的偏移量來複制MySQL Delete?

下面是MySQL數據庫的腳本:

DELETE FROM `my_table` 
    WHERE id <= (
    SELECT id 
    FROM (
     SELECT id 
     FROM `my_table` 
     WHERE some_id = $this->id 
     ORDER BY id DESC 
     LIMIT 1 OFFSET $max 
    ) sp 

其中最大爲10萬

這將刪除任何多餘的,因爲我已經開始實施彈性搜索,我最多試圖複製這一功能,但我不知道從哪裏開始,因爲我還不熟悉這個軟件。

我一直在尋找PHP API中的deleteByQuery方法,但我沒有看到任何有關偏移量或類似的東西。

有人能指出我正確的方向嗎?

回答

0

試試這個,它會刪除多餘的記錄

DELETE FROM my_table WHERE id IN (
    SELECT id 
    WHERE some_id = $this->id 
    ORDER BY id ASC 
    LIMIT $maxRecordsAllowed, $countHowManyToDelete 
) 
+0

對不起,我可能已經含糊,我的MySQL的作品,我試圖複製使用ElasticSearch該功能 – Anthony 2014-12-11 05:25:43