mysql耦合OR语句

时间:2017-07-11 09:10:45

标签: mysql sql random sql-function

我正在尝试执行耦合OR 语句

select * from table where cat = "x" OR (cat = "y" AND rand()<=0.25);

所以我想选择cat = x或cat = y的所有项目,但只选择y的25%。上面的陈述给出了x和y的25%。

我如何分离我的陈述以便做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

我不知道你在做什么,但我几乎可以闻到这是实施SQL的一种非常狡猾的方式。

我假设,如果随机数生成%25概率的结果,你想改变你的where子句。如果cat =“x”,你不能用OR执行此操作,那么它甚至不会尝试查看Y.这给出了你们所有的X和Ys的四分之一。

尝试使用此方法实现概率检查。

IF  (RAND() <= 0.25)  
     { sql_statement_forY  }   
[ ELSE   
     { sql_statement_forX  } ]