mysql语句

mysql语句,mysql,sql,random,sql-function,Mysql,Sql,Random,Sql Function,我想做一个耦合或语句 select * from table where cat = "x" OR (cat = "y" AND rand()<=0.25); 从cat=“x”或(cat=“y”和rand()所在的表中选择*我不知道您在做什么,但我几乎能感觉到这是一种非常狡猾的SQL实现方法 我假设,如果随机数生成概率为%25的结果,您希望更改where子句。如果cat=“x”,则无法使用ORs执行此操作。如果cat=“x”,则它甚至不会尝试查看Y。这将给出所有x和Y的四分之一 尝试此方

我想做一个耦合或语句

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

从cat=“x”或(cat=“y”和rand()所在的表中选择*我不知道您在做什么,但我几乎能感觉到这是一种非常狡猾的SQL实现方法


我假设,如果随机数生成概率为%25的结果,您希望更改where子句。如果cat=“x”,则无法使用ORs执行此操作。如果cat=“x”,则它甚至不会尝试查看Y。这将给出所有x和Y的四分之一

尝试此方法以实现概率检查

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

IF(RAND()“但只有y的25%”是什么意思?如果cat=“x”,则不能使用ORs然后它甚至不会尝试看Y。这会给出所有x和Y的四分之一的奇怪行为。也许不是或使用联合?我想在sqlfiddle.com或rextest.com的例子中看到这种行为的作用。因为如果一个随机数小于25%,所有x都应该返回且仅返回Y。注意:你不能保证Y的25%。所有你都是guaranteed是指如果0和1之间的随机值为