MYSQL if @@ ROWCOUNT UNION SELECT ANOTHER QUERY

时间:2015-12-11 16:15:26

标签: mysql union

以下是来自SQL Server的查询:

SELECT * FROM ITEM WHERE item.name = hank
If @@ROWCOUNT < 20 THEN
UNION
SELECT * FROM ITEM WHERE item.name = jim
ENDIF

这在MySQL中是否可行?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,那么你不需要union。一种选择是将order bylimit

一起使用
select * 
from item
where name in ('hank','jim')
order by name
limit 20

这将从item表中选择20行,从name = 'hank'的那些行开始。您还可以考虑使用:

order by case when name = 'hank' then 0 else 1 end 
limit 20

答案 1 :(得分:0)

我不确定此行为是否已记录/保证,但in the past我发现以下情况有效。

SELECT SQL_CALC_FOUND_ROWS *
FROM Item
WHERE Name ='Hank'

UNION ALL

SELECT *
FROM Item
WHERE FOUND_ROWS() < 20 AND Name = 'Jim';
相关问题