Lightwalker
asked on
Mysql Query - shorter way to see if row contains a number
Dear experts,
I have a query that I think I am making more complicated than it needs to be and would like to make it simpler.
I have attached the query below, what I have is this statement that tell me to show the record if it contains the number 1,2,3 if not to show an empty record "orderdetails.DetailItemID = 1 OR orderdetails.DetailItemID = 2 OR orderdetails.DetailItemID = 3".
Is there an easier way to say this i.e ( i know this does not work but something like) "orderdetails.DetailItemID = 1,2,3" I do not want to use <= 3 because in the future I may need to include more numbers that are not in order i.e 1,2,3,7,10 that the query will need to check for.
Many thanks as always for your help
I have a query that I think I am making more complicated than it needs to be and would like to make it simpler.
I have attached the query below, what I have is this statement that tell me to show the record if it contains the number 1,2,3 if not to show an empty record "orderdetails.DetailItemID
Is there an easier way to say this i.e ( i know this does not work but something like) "orderdetails.DetailItemID
Many thanks as always for your help
SELECT orderdetails.DetailOrderID,
orderdetails.DetailItemID
FROM orderdetails
WHERE orderdetails.DetailsMemberID = 1 AND orderdetails.ProgramActivated = 0 AND orderdetails.DetailItemID = 1 OR orderdetails.DetailItemID = 2 OR orderdetails.DetailItemID = 3
ORDER BY orderdetails.DetailsID DESC
LIMIT 1
Also note that they way you have it written above would give you what you want PLUS it would give you orderdetails.DetailItemID' s 2 and 3 regardless of what orderdetails.DetailsMember ID and orderdetails.ProgramActiva ted were. You need to enclose it in open and closed () in order to do what you were thinking like below.
SELECT orderdetails.DetailOrderID,
orderdetails.DetailItemID
FROM orderdetails
WHERE orderdetails.DetailsMemberID = 1 AND orderdetails.ProgramActivated = 0 AND (orderdetails.DetailItemID = 1 OR orderdetails.DetailItemID = 2 OR orderdetails.DetailItemID = 3)
ORDER BY orderdetails.DetailsID DESC
LIMIT 1
ASKER
Thanks Tekati68,
In the future on the same query I will have to run this query to check numbers that are out of sequence i.e 1,2,3,7,10 so the between clause will not work for this. in there another more efficient way to check for numbers out of sequence.
thanks for your help
In the future on the same query I will have to run this query to check numbers that are out of sequence i.e 1,2,3,7,10 so the between clause will not work for this. in there another more efficient way to check for numbers out of sequence.
thanks for your help
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you Tekati68, that's perfect I'm really grateful
Open in new window