Bulant Denys wrote:

--- Michael Stassen <[EMAIL PROTECTED]> a
écrit :


denys wrote:

> SELECT  country
> FROM Rates
> WHERE fieldvalue1 <> 0 AND fieldvalue2 <> 0 AND
fieldvalue3 <> 0
> ORDER BY country
> is it what you want ?
>

Gleb Paharenko wrote:


Hello

You may use query like this:
select country from rates where (fieldvalue1 !=0)

and (fieldvalue2 !=0)


and (fieldvalue3 !=0) order by country;

See:


http://dev.mysql.com/doc/mysql/en/Comparison_Operators.html

And since 0 is false and every other number is true,
this could be simplified to


  SELECT country
  FROM Rates
  WHERE fieldvalue1 AND fieldvalue2 AND fieldvalue3
  ORDER BY country;

Michael

I will go to bed less fool this evening... Is it just
a clearest way to write it, or is there some
performance issues too ?

In theory, "fieldvalueN != 0" causes a comparison operation which will return 1 or 0 (true or false) for each field, then the results are combined with ANDs, which would be 3 extra comparisons compared to simply combining with ANDs. In practice, I'd bet the optimizer is smarter than that, and the performance will be identical. Even if the "extra" comparison were not optimized away, I doubt it would appreciably affect the speed. You could certainly try it both ways with your data to see if if you get any difference, but I don't expect any.


Michael

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



Reply via email to