Michael,

Thank you and all for effort to help.. I solved the problem by giving high 
limit numbers  such as;


(select * from tablea where item=1 order by rand() limit 0, 100000000) 
union all
(select  * from tablea where item != 1 order by rand() limit 0, 
100000000);

------------------------------------------------------------
Halil Demirezen 
System Support Engineer/ Sistem Destek Muhendisi 
Mobile Tel/Cep Tel: +90(543) 502 04 42
E-Mail/E-Posta: [EMAIL PROTECTED]
-----------------------------------------------------------




Michael Stassen <[EMAIL PROTECTED]> 
05.12.2005 15:46

To
HALIL DEMIREZEN <[EMAIL PROTECTED]>
cc
Gleb Paharenko <[EMAIL PROTECTED]>, mysql@lists.mysql.com
Subject
Re: About union sql  Mysql 4.x






HALIL DEMIREZEN wrote:
 > Hi,
 >
 > I am trying to run an sql query such as below to list items=x randomly 
and
 > then items != x randomly..
 >
 >
 > mysql> (select * from tablea where item=1 order by rand()) union all
 > (select  * from tablea where item != 1 order by rand());
 >
 > but the result is not as expected. rand() seems not to be working...
 >
 > What can be the problem? or what can be the difference between my will 
and
 > the exact result of the query?

Gleb Paharenko wrote:
 > Hello.
 >
 >>From http://dev.mysql.com/doc/refman/5.0/en/union.html:
 >
 > "ORDER BY for individual SELECT statements within parentheses has an
 > effect only when combined with LIMIT. Otherwise, the ORDER BY is
 > optimized away."
 >
 > Therefore you're getting the same results, because ORDER BY doen't
 > work for your query.

HALIL DEMIREZEN wrote:
> What if i want to list all the records not limiting them to a constant?

How about

   SELECT * FROM tablea
   ORDER BY (item != 1), RAND();

Michael

Reply via email to