As everyone has mentioned - you should always assume the data comes back randomly - 
even if the table is completely static and there have been no inserts or updates, but 
it's even more subtle than that.

When you port your application to a database than allows your queries to run 
multi-threaded (Oracle, DB2, SQL Server) - every query process will return a chunk of 
the data and one process will mastermind and glue the chunks together. There is no 
guarantee that the chunks will always be glued in the same order - unless ORDER BY has 
been specified.

People who get sloppy in single threaded databases and only use a GROUP BY without an 
ORDER BY, relying on the fact that the GROUP BY does a sort and makes the ORDER BY 
unnecessary - get a rude awakening when they move to a multi-threaded database where 
every query process returns its chunk sorted but the different chunks are glued out of 
sequence unless you explicitly specified the ORDER BY.

So - certain errors will never become apparent in single-threaded MySQL or Microsot 
Access, but will sting you when upgrading to a multi-threaded database. Therefore - 
beware - and always specify ORDER BY if you want your data sorted.




In a message dated 5/3/2004 1:39:48 PM Eastern Daylight Time, [EMAIL PROTECTED] writes:

> 
> My boss says that if you do a select statement against a table the
> result set always comes back in the same order.  I say that this is a
> myth and that the result is random, except when some ordering is
> specified in the SQL statement.
> 
> Who is right?  Is this behavior specified by ANSI or ISO?
> 
> Best Regards,
> Boyd E. Hemphill
> [EMAIL PROTECTED]
> Triand, Inc.
> www.triand.com
> O:  (512) 248-2287
> M:  (713) 252-4688
> 
> 
> 
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:   
>  http://lists.mysql.com/[EMAIL PROTECTED]
> 
> 
> 
>


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to