【发布时间】:2018-09-25 11:06:09
【问题描述】:
我有这张桌子:
我想在发布的条件下获得 2 个随机行并具有不同的位置值(例如:如果第一行是垂直的,则第二行必须是水平的)。
我试过了
SELECT * FROM publicity where published = 1 and location = 'vertical'
UNION
SELECT * FROM publicity where published = 1 and location = 'horizontal'
ORDER BY rand() LIMIT 2
它有时会给我 2 行具有相同位置值的信息。
【问题讨论】:
-
欢迎您! Stack Overflow不是代码编写服务。我们总是乐于帮助和支持新的编码员,但您需要先帮助自己。您应该尝试自己编写代码。请阅读How to create a Minimal, Complete, and Verifiable example。
-
用 UNION 组合两个查询,为每个位置随机选择一个 ...
-
“使用 UNION 组合两个查询,为每个位置随机选择一个” @misorude 确实可以使用 union 和 where 过滤器。
-
我把这个:SELECT * FROM publicity where published = 1 and location = 'vertical' UNION SELECT * FROM publicity where published = 1 and location = 'horizontal' ORDER BY rand() LIMIT 2 有时给我 2 行具有相同位置值
-
您需要将限制应用于单个查询(以及订单)。现在,您正在读取所有条记录,随机排序,然后将结果限制为两条。
标签: php mysql random phpmyadmin