devxlogo

Querying a List

Querying a List

Question:
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 fcode<=15) OR fcode=20;
But 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?

Answer:
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);

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist