我需要这个查询:
基本上我只需要一个记录,其中 best = 'value' 并且
MySQL 是否足够聪明,能否理解在联合的第一个查询返回结果时,考虑到有 LIMIT 1,他不需要执行第二个查询?
为了只有一个查询,我可以这样做:
但是使用这个查询,我无法说将优先权更多地给予
SELECT * FROM best WHERE best = 'value' AND lang = 'x'
UNION
SELECT * FROM best WHERE best = 'value' AND lang = 'custom'
LIMIT 1
基本上我只需要一个记录,其中 best = 'value' 并且
lang = 'x'
,如果找不到这个记录,则需要执行第二个查询,其中 lang ='custom'
。MySQL 是否足够聪明,能否理解在联合的第一个查询返回结果时,考虑到有 LIMIT 1,他不需要执行第二个查询?
为了只有一个查询,我可以这样做:
SELECT * FROM best WHERE best = 'value' AND lang IN ('x','custom') LIMIT 1
但是使用这个查询,我无法说将优先权更多地给予
lang = 'x'
的记录。