我做这个查询(1):
(1)SELECT * FROM t1 WHERE title LIKE 'key%' LIMIT 1
我只需要在前一个查询没有结果的情况下进行第二次(2)查询
(2)SELECT * FROM t1 WHERE title LIKE '%key%' LIMIT 1
基本上我只需要一排能获得最接近我的钥匙的人。
我正在使用带有自定义字段的UNION查询对它进行排序和限制1.问题是如果第一次查询结果,我不想进行其他查询。
由于
答案 0 :(得分:2)
当且仅当查询Q1在单个SQL语句中没有返回任何内容时,没有标准的方式来说'执行查询Q2。
适度接近的方法是:
SELECT * FROM t1 WHERE title LIKE 'key%' LIMIT 1
UNION
SELECT * FROM t1 WHERE title LIKE '%key%'
AND NOT EXISTS (SELECT * FROM t1 WHERE title LIKE 'key%')
LIMIT 1
问题在于优化器是否足够智能以实现NOT EXISTS子查询是UNION的前半部分。