我想在此查询中添加快速随机选择:
SELECT * FROM postlink WHERE `source`='$mysource' AND NOT EXISTS (SELECT sign FROM `state` WHERE postlink.sign = state.sign AND `cite`='$mycite') LIMIT 2
我用过这个,但这很慢:
SELECT * FROM postlink WHERE `source`='$mysource' AND NOT EXISTS (SELECT sign FROM `state` WHERE postlink.sign = state.sign AND `cite`='$mycite') ORDER BY RAND() LIMIT 2
注意:本主题不重复,因为我想以非常条件而不是简单的随机选择随机选择。
请帮忙。
谢谢。
对于此查询:
SELECT pl.*
FROM postlink pl
WHERE `source` = '$mysource' AND
NOT EXISTS (SELECT 1
FROM `state` s
WHERE pl.sign = s.sign AND s.`cite` = '$mycite'
)
ORDER BY RAND()
LIMIT 2;
我会从索引开始:postlink(source, sign)
和state(sign, cite)
。 如果这不能满足您的需求,那么我会研究改进随机选择的方法。