Solved

Mysql Query - shorter way to see if row contains a number

Posted on 2010-08-14
5
384 Views
Last Modified: 2013-12-13
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

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

Open in new window

0
Comment
Question by:Lightwalker
  • 3
  • 2
5 Comments
 
LVL 2

Expert Comment

by:Tekati68
ID: 33439294
You can use BETWEEN as follows.
SELECT orderdetails.DetailOrderID, 

	orderdetails.DetailItemID

FROM orderdetails

WHERE orderdetails.DetailsMemberID = 1 AND orderdetails.ProgramActivated = 0 AND orderdetails.DetailItemID BETWEEN 1 AND 3 

ORDER BY orderdetails.DetailsID DESC

LIMIT 1

Open in new window

0
 
LVL 2

Expert Comment

by:Tekati68
ID: 33439299
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.DetailsMemberID and orderdetails.ProgramActivated 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

Open in new window

0
 

Author Comment

by:Lightwalker
ID: 33439304
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
0
 
LVL 2

Accepted Solution

by:
Tekati68 earned 125 total points
ID: 33439310
Ah yes in that case you would want to use the IN keyword as in...
SELECT orderdetails.DetailOrderID, 

	orderdetails.DetailItemID

FROM orderdetails

WHERE orderdetails.DetailsMemberID = 1 AND orderdetails.ProgramActivated = 0 AND orderdetails.DetailItemID IN (1,2,3,7,10) 

ORDER BY orderdetails.DetailsID DESC

LIMIT 1

Open in new window

0
 

Author Comment

by:Lightwalker
ID: 33439316
Thank you Tekati68, that's perfect I'm really grateful
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now