我有一个数据表result(id, url, is_valid)
数据插入的时候is_valid字段默认为true
现在有一个需求,需要从数据表里面读出前10个is_valid字段为true的数据并把这10个数据is_valid字段标记为false注:随时会有新数据插入result表请问这个需要如何实现

解决方案 »

  1.   

    UPDATE result SET is_valid = 'false' WHERE is_valid = 'true' limit 10
      

  2.   

    id, url, is_vali
    ------
    前10个,有没有逻辑判断,比如同一个ID,前10个url为true,这10条记录更新为False,不满足10条或前10条有False时不处理?
      

  3.   

    id是自增的主键 我只是想取出(最多)前10个is_valid为true的数据 
      

  4.   

    取最多?
    ---
    猜一个,只是url相同的为true的记录数,取前10个url,再更新这10个url所有记录
    e.g.update tab1 as a inner join (select url from tab1 where is_valid=1 group by url  order by count(*) limit 10) as b on a.id=b.id
    set is_valid=0;
      

  5.   

    update 有一个数据表
    set is_valid=false
    where is_valid=true
    order by id desc limit 10