在给定特定条件的情况下随机查询SQL

时间:2017-10-17 09:54:32

标签: mysql

假设我有这个新闻收集数据库,其中cat1,cat2等属于类别:

title     cat1  cat2  cat3  cat4  catcount  new1  new2  new3  new4
title1     1     2      0     0      2        0    0     0     0
title2     0     2      0     4      2        0    0     0     0
title3     1     2      3     0      3        0    0     0     0

现在我想随机选择任何非零类别的标题,例如title='title3' cat2='2'来做一些确定此类别是否正确的处理。 然后将值返回到相应的new2(因为我们处理了cat2),递减catcount,并将cat2设置为零,因为它已被处理。

目标是处理所有标题类别的组合,并将结果写入new,除非我随机阅读。 我如何在MySQL中查询?

编辑: 最终结果应该是这样的:

title     cat1  cat2  cat3  cat4  catcount  new1  new2  new3  new4
title1     0     0      0     0      0        1    0     0     0
title2     0     0      0     0      0        0    2     0     4
title3     0     0      0     0      0        0    2     0     0

1 个答案:

答案 0 :(得分:0)

您可以使用MySQL的RAND()函数生成伪随机数。

但请注意,此函数的熵非常低,因此您应该考虑获取表的所有条目,然后在代码中单独执行处理。

http://dev.mysql.com/doc/refman/5.7/en/mathematical-functions.html

  

RAND()并不是一个完美的随机发生器。这是一种快速的方式   根据需要生成可随机移动的随机数   相同MySQL版本的平台。