我正在尝试执行耦合OR 语句
select * from table where cat = "x" OR (cat = "y" AND rand()<=0.25);
所以我想选择cat = x或cat = y的所有项目,但只选择y的25%。上面的陈述给出了x和y的25%。
我如何分离我的陈述以便做到这一点?
由于
答案 0 :(得分:0)
我不知道你在做什么,但我几乎可以闻到这是实施SQL的一种非常狡猾的方式。
我假设,如果随机数生成%25概率的结果,你想改变你的where子句。如果cat =“x”,你不能用OR执行此操作,那么它甚至不会尝试查看Y.这给出了你们所有的X和Ys的四分之一。
尝试使用此方法实现概率检查。
IF (RAND() <= 0.25)
{ sql_statement_forY }
[ ELSE
{ sql_statement_forX } ]