有没有办法将这两个查询合并为一个?
query = "select foo from TABLE where foo like '%foo%'";
if (query.empty())
query = "select bar from TABLE where bar like '%foo%'"
Run Code Online (Sandbox Code Playgroud)
更新:
select ifnull(foo,bar) from TABLE where foo like 'foo%' or bar like '%foo%';
Run Code Online (Sandbox Code Playgroud)
感谢Kamal的想法
我刚刚意识到这可以返回多行 - 这是修复:
select foo from TABLE where foo like '%foo%'
union all
select bar from TABLE where bar like '%foo%'
and not exists (select 'x' from TABLE where foo like '%foo%')
Run Code Online (Sandbox Code Playgroud)
使用UNION ALL
(不UNION
)会更快,因为对结果进行UNION
排序.
已经提出了非联合解决方案的请求.我没有.
归档时间: |
|
查看次数: |
232 次 |
最近记录: |