Matches in a database.

Von Fugal von at fugal.net
Tue Jun 28 14:26:04 MDT 2005


* Matthew Walker [Tue, 28 Jun 2005 at 11:34 -0600]
<quote>
> On Tue, 2005-06-28 at 11:20 -0600, C. Ed Felt wrote:
> > So, in short, (since a paragraph will get confusing):
> > 
> > 1.  SELECT all records in the CDR table after a requested date (usually 
> > 24 hours).
> > 2.  Store these records in a huge array.
> > 3.  Find all repeats on the 'sessid' field and store this in an array.
> > 4.  Delete all repeats (save one copy of each repeat CDR).
> > 
> > Is there a MySQL query, (version 3), to select all rows that have one or 
> > more matching rows on a specific field ('sessid')?  This would 
> > essentially combine steps 1, 2 and 3 in one MySQL query.
> 
> I don't believe this is doable in a single query until MySQL 5.
> You /might/ be able to do it in 4.1, but I'm not sure.

It is doable, and not so hard. What's NOT doable is including step 4 in
"The One Query".

Some have given some ideas already, but to specifically return results
where there ARE duplicates of sessid, something like this...

select *, count(sessid) as cnt from CDR group by sessid having cnt > 1

that will give you all occurences where theres a duplicate sessid,
though you don't know _which_ duplicate row you will get.

But finding one query aside, why don't you just put a unique key on
sessid so there cannot be duplicates?

Von Fugal
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://plug.org/pipermail/plug/attachments/20050628/a2117a94/attachment.bin 


More information about the PLUG mailing list