【发布时间】:2017-12-15 06:09:23
【问题描述】:
我正在尝试做一个耦合或语句
select * from table where cat = "x" OR (cat = "y" AND rand()<=0.25);
所以我想选择所有带有 cat = x 或 cat = y 的项目,但只选择 y 的 25%。上面的陈述给出了 x 和 y 的 25%。
我怎样才能分开我的陈述,这样才能做到这一点?
谢谢
【问题讨论】:
-
“但只有 25% 的 y”是什么意思?
-
如果 cat="x" 则不能使用 OR 执行此操作,那么它甚至不会尝试查看 Y。这给了你所有 X 和 Y 的四分之一
-
奇怪的行为。也许代替 OR 使用 union ?我想在 sqlfiddle.com 或 rextest.com 示例中看到这种行为。因为如果随机数小于 25%,则应仅返回所有 x 和 y 注意:不能保证 y 的 25%。您可以保证的是,如果 0 和 1 之间的随机值是
标签: mysql sql random sql-function