2016-02-23 2 views
2

Этот запрос сортирует результаты по значению select count (*). Я не хочу, чтобы это произошло. Как я могу избежать этого? Я хочу показать их в том порядке, в котором они написаны в запросе. Спасибо за помощь.Как избежать сортировки по СОЮЗУ (*) по значению?

Это часть запроса:

(select count(*) as num_tweet from [TvPad2-dev].dbo.TWEET where REQUEST_ID = 7 
and CREATION_DATE>'2016-02-14 01:00:00.000' 
and CREATION_DATE<'2016-02-14 01:29:59.999' 
and text like '%arisa%') 

union 

(select count(*) as num_tweet from [TvPad2-dev].dbo.TWEET where REQUEST_ID = 7 
and CREATION_DATE>'2016-02-14 01:30:00.000' 
and CREATION_DATE<'2016-02-14 01:59:59.999' 
and text like '%arisa%') 
+0

Я не уверен, что в этом случае есть фиксированный заказ. Однако, поскольку вы используете UNION, MySQL должен пройти результаты, чтобы проверить и устранить дубликаты, и он будет делать вид как часть этого. Вероятно, это просто по умолчанию упорядочивается по возрастающим полям. Хотя я бы не стал полагаться на это, переход на UNION ALL мог бы решить эту проблему (и, по моему мнению, более логичный смысл для вашего запроса). – Kickstart

+0

Вы пытаетесь получить счет в получасовых сегментах? Если так, то есть гораздо более короткий путь. –

ответ

0

UNION ALL будет делать трюк. Если вы измените UNION на UNION ALL, вы не получите отсортированные результаты.

2

Использование UNION ALL.

(select count(*) as num_tweet from [TvPad2-dev].dbo.TWEET where REQUEST_ID = 7 
and CREATION_DATE>'2016-02-14 01:00:00.000' 
and CREATION_DATE<'2016-02-14 01:29:59.999' 
and text like '%arisa%') 

union all 

(select count(*) as num_tweet from [TvPad2-dev].dbo.TWEET where REQUEST_ID = 7 
and CREATION_DATE>'2016-02-14 01:30:00.000' 
and CREATION_DATE<'2016-02-14 01:59:59.999' 
and text like '%arisa%') 
+0

Спасибо, я постараюсь как можно скорее и дам вам знать – sirdan