所以,我想修改下面的查询:按MAX()值分组?
SELECT *
FROM flow
INNER JOIN flow_strings
USING(node_id)
WHERE
(
flow.parent = 0
OR flow.parent = :user_flow
)
AND flow.source = 0
AND :input LIKE CONCAT('%', flow_strings.sql_regex, '%')
ORDER BY flow.parent DESC, RAND()
的查询工作它究竟应该如何。不过,我需要修改一下。假设表flow
上的INT列为priority
,那么如何将其修改为只抓取结果,其中flow.priority
等于MAX(priority)
?
换句话说,我希望查询完成它的功能,但是如果存在优先级值,我希望它只能从最高优先级中进行选择。如果有多个高优先级值,那么它应该选择两个。
我在StackOverflow上看到一些其他帖子似乎提出了同样的问题,但答案似乎没有解释解决方案 - 他们只发布答案。如果您可以附上对发生的事情的解释,我会非常感谢!谢谢!
那么,什么是你找到了解决方案,这将是更容易解释?如果你发布它们而不是派生一个查询然后解释 – nawfal
你对MAX的优先级条件是什么?SELECT MAX(priority)FROM flow'或者'SELECT MAX(priority)FROM flow WHERE(flow.parent = 0 OR flow .parent =:user_flow)AND flow.source = 0 AND ...)'? –