ES条件删除_delete_by_query的DSL-2019-10-18

ES条件删除_delete_by_query的DSL-2019-10-18,第1张

在ES中条件删除的DSL:

POST /indexName/typeName/_delete_by_query?conflicts=proceed&scroll_size=10000

{

  "query": {

    "range": {

      "receive_date": {

        "gte": "2019-10-01",

        "lte": "2019-10-01"

      }

    }

  }

}

首先,你的表肯定是做了外键等约束的,所以删除,要从最外层删除。假设你的数据库是Sql Server的。

1、技能表

delete from 技能表 where 人物id in (select 人物id from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3))

2、装备属性表

delete from 装备属性表 where 装备id in (select 装备id from 装备表 where 人物id in (select 人物id from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3)))

3、装备表

delete from 装备表 where 人物id in (select 人物id from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3))

4、人物表

delete from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3)

5、账号表

delete from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3

1、一种方法是通过在界面设置里设置条件“查询设计”设置查询条件(这个可以在百度知道找到)

2、另一种是SQL设计界面里输入 SQL语句,下面是例句

Delete From table where id in(1,2,3,4,5,6,7,8,9,10)

in()这个里面可以是用来接收页面选择的.. 你也可以 使用 where id >? and id <? 这种边界条件来删除符合这个条件的数据...

其实这两种方法原理是一样的。只是第一种方法是界面 *** 作,省去了输入SQL语句。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9994710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存