2014-12-11 58 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