gpt4 book ai didi

MySQL查询优化: UNION with rand()

转载 作者:行者123 更新时间:2023-11-30 00:42:05 24 4
gpt4 key购买 nike

我有以下查询:

    (SELECT ad_code, ad_zone FROM on_ads WHERE ad_zone = 1 AND status = '1' ORDER BY RAND() LIMIT 1) UNION (SELECT ad_code, ad_zone FROM on_ads WHERE ad_zone = 2 AND status = '1' ORDER BY RAND() LIMIT 1);

它在我的服务器中被记录为慢速查询。我正在努力优化它。我尝试了以下查询

    (SELECT ad_code, ad_zone FROM on_ads WHERE ad_zone = 1 AND status = '1' OR ad_zone = 2 AND status = '1' ORDER BY RAND() LIMIT 2)

但此查询的问题在于,第一个查询选择了两个随机行,其中一个 ad_zone=1,另一个 ad_zone=2。虽然我选择了两行,但不能保证它会选择两行不同的行(一行的 ad_zone=1 和另一行的 ad_zone=2)。我应该做什么来优化这个查询?

最佳答案

你必须尝试这样的事情:

(SELECT DISTINCT(ad_code), ad_zone FROM on_ads WHERE (ad_zone = 1 OR ad_zone = 2) AND status = '1' ORDER BY RAND() LIMIT 2)

关于MySQL查询优化: UNION with rand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21683712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com