Skip to main content

MySQL query to retrive only one record for a repeating column or rows of data

MySQL query to retrive only one record for a repeating column or duplicate rows of data

Suppose there is a table tbl_BOOKS which stores records of various books. some books comes under different categories. so there may be multiple records with same BookReferenceNumber. But when user searches for a particular reference number, the search result should display only one record eventhough there are multiple entries for same BookReferenceNumber.

Let us illustrate this with a sample table given below:
Table Name: tbl_BOOKS

BookId BookReferenceNumber BookName BookCategory BookDetails BookStatus
1 5546 Let us C C Language C tutorial book Available
2 2311 Java Complete reference Java Programming Java quick reference text Unavailable
3 5546 Let us C Programming C tutorial book for dummies Available
4 8900 PHP & PERL Web Programming Complete guide for PHP and Perl programming Available

In the above table, the book "Let us C" is repeating, this is to show the record under multiple categories. ie "C Language" and "Programming" , but user should view only one of this 2 records in the search results

Here is the sample query for accomplishing the above mentioned task.


SELECT
BookId, BookReferenceNumber,
BookName, BookCategory,
COUNT( BookReferenceNumber ) AS HowManyRecs,
BookDetails, BookStatus

FROM tbl_BOOKS

WHERE (
BookReferenceNumber LIKE '42324%'
OR BookName LIKE '%42324%'
)
AND (
BookStatus = 'Available'
)
GROUP BY BookReferenceNumber
HAVING (
HowManyRecs > 0
)



The result of the above query is given below. Please note there is only one record corresponding to book "Let us C"

Book
Id
BookReference
Number
Book
Name
Book
Category
HowMany
Recs
Book
Details
Book
Status
3 5546 Let us C Programming 2 C tutorial book
for dummies
Available
4 8900 PHP & PERL Web Programming 1 Complete guide for
PHP and Perl
programming
Available

Try it and post your valuable comments  in the comment section below :)



Sample query to find records having duplicates

SELECT BookReferenceNumber, COUNT(BookReferenceNumber) AS HowMany FROM tbl_BOOKS
GROUP BY BookReferenceNumber
HAVING ( COUNT(BookReferenceNumber) > 1 )


SELECT BookReferenceNumber, COUNT(BookReferenceNumber) AS HowMany FROM tbl_BOOKS
GROUP BY BookReferenceNumber
HAVING ( HowMany > 1 )



Read how to Delete duplicate records from a mysql table by keeping only one record with highest or lowest id value.


Related post:

Popular posts from this blog

How to delete videos from your Youtube Watch History list?

How to Delete Individual or all videos from your Youtube Watch History list? Youtube keeps a fine record of the videos that you had watched earlier. You can view this by visiting the History section. If you want to remove the video's from the list do the following: Logon to Youtube and click on the "History" tab on the left menu to view Watch History ( Read more ) There will be check boxes corresponding to each video in the list Tick the check boxes of the videos which you want to remove Click on " Remove " button to delete the videos.

How to add "Link to this page" option under blogger posts?

Steps in adding Link to this page to your blogger posts Links to your page can improve your page rank. So it is a good option to add HTML code for linking to your web page. So that reader can copy and paste it on their web page. if another website links to your web page, this is considered an external link to your website. External links to your website are the most important source of ranking power and in SEO terminology it is considered as third party ranking vote for your page.

Intex Aqua 5.5 VR Plus genuine Review - Dont Buy Intex Aqua 5.5 VR Plus - Board complaint and low battery backup issues

Intex Aqua 5.5 VR Plus  Review - Dont Buy Intex Aqua 5.5 VR + - Board complaint and low battery backup issues I bought an Intex Aqua 5.5 VR Plus on April 23, 2018, With in a week it started to show Battery backup issues. Even if it is charged full, it will completely drain out with in 12 or 13 hours. During this time No internet was used, only 2 or 3 calls were done. Some times there was issues with net connection also.


Urgent Openings for PHP trainees, Andriod / IOS developers and PHP developers in Kochi Trivandrum Calicut and Bangalore. Please Send Your updated resumes to recruit.vo@gmail.com   Read more »
Member
Search This Blog