Newbie MySql programmer thanks for the patience.
Im trying to track an Id number in a table where 3 different conditions are met this is what Iv got however the query dosent return any results where there are clearly matches in the table. Thoughts?
SELECT *
FROM `table`
WHERE `x` BETWEEN 80 AND 20
AND `y` BETWEEN 120 AND 20
AND `z` BETWEEN 40 AND 10
LIMIT 0 , 30
Am I right in theory to think that this should work?
Close, but no cigar. :)
To explain, SQL servers generally evaluate
x BETWEEN val1 AND val2
the same asx >= val1 AND x <= val2
. The way your original query was written, the first condition would bex >= 120 AND x <= 20)
, which obviously wasn't what you intended.The parentheses around the different conditions make sure that each is evaluated completely before the AND is considered. It makes a difference most of the time in SQL, and even when it doesn't it's a good idea to use them so your intentions are clear 6 months from now when you (or someone else) has to look at the query again.
I think the range needs to be the other way around: