I’ve been trying to construct a query on the databaseto see if the value in a particular field matches a long list of correct answers. For example, I would like to pull out all FCODE values which match either 2, 5, 20, or any value between 10 and 15. I’ve tried:
SELECT * FROM Db WHERE fcode=2 OR fcode=5 OR (fcode>=10 AND fcodeBut this doesn’t work. One would expect that the bracketsor a similar structure would be necessary to maintain theproper mathematical order. As an alternative, I tried doing it the longer way by doing the following:SELECT * FROM Db WHERE fcode IN (2,5,10,11,12,13,14,15,20);This is undesirable because I have a large amount of numbers.Also, it seems to crash when I do get a large number ofentries. Do you have any ideas?
The longer format statement you showed in your example using the IN clause usually is the preferred course for shorter lists of possibilities. For cases where the list is long, the best alternative is usually to create a table that contains the long list, then construct a subquery:SELECT * FROM Db WHERE fcode IN (SELECT fcode FROM Code);