Re: Questions about finding ranges
| From: | Jim Lucas | Date: | Wed, 23 Jul 2008 14:58:28 +0000 |
| Subject: | Re: Questions about finding ranges | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-277190@lists.php.net to get a copy of this message | ||
Aslan wrote:
Hey there, I have a range of records that represent different faults and different symptoms that I want to pull out of the database, and to find the records that are the closest within each range. I am currently doing it with a barrage of if statements, but I am sure that this could be done faster and far more elegantly by using SQL I have a range of conditions eg Attainable rates: 0-500 KB/sec is very poor 500 - 1000 is marginal 1000- 3000 KB/sec is good So the database may look like: Type|Min|Max|Value Attainable|0|500|" This rate is very poor" and then SQL could go something like SELECT * FROM table WHERE Type= "Attainable" AND Min LIKE $varYou're close, try this SELECT *
FROM table WHERE Type = "Attainable" AND Min <= $var AND Max >= $varas long as your min and max do not overlap from row to row, you should only get one result. Make sure in your data that you have no overlap.
Row 1 = 0 - 499Row 2 = 500 - 999 Row 3 = 1000 - 1499
But that wouldn't work quite right I don't think. But where it can get a bit more hairy is that I want to have a whole range of variables that are input from an entry table, and then it just finds the the vars that are the closest to what is searching for all the vars. The closest code I have seen doing something similar is where there it is finding if an IP is in a certain range. Does that make sense? feel free to email me if you need more explanation. It is kind of like a multi variable search engine, that is finding the root cause of the symptoms that are the very best fit given the multi-variables... Thanks heaps for any assistance, Aslan.-- Jim Lucas "Some men are born to greatness, some achieve greatness, and some have greatness thrust upon them." Twelfth Night, Act II, Scene V by William Shakespeare