The sooner you fix it, the less work you have to do down the road!

miguel

On Thu, 23 May 2002, ROBERT MCPEAK wrote:

> I appreciate you help.  I inherited the pipe-delimited data.  I would
> have done it as you suggested.
> 
> Thanks.
> 
> -Bob
> 
> >>> "1LT John W. Holmes" <[EMAIL PROTECTED]> 05/23/02 01:57PM
> >>>
> It's generally a bad idea to store delimited data in a single column in
> a
> database. It kind of goes against what a database is there for. A
> better
> layout would be to have your second table contain a row for each of
> the
> "delimited" values.
> 
> So if you have '1,2,3,4' in your database now, the better way would be
> to
> have four rows, 1 through 4 in the table instead, with whatever other
> info
> you keep for each row. Then a simple SELECT var, COUNT(var) FROM table
> will
> give you the answers you're looking for.
> 
> but...if you want to leave it the way it is, then you can use some kind
> of
> matching to find the rows using LIKE. I couldn't get a query to work,
> though. If your data can be seperated by commas, an easy way to do it
> is
> with something like this
> 
> SELECT table1.key, COUNT(*) FROM table1, table2 WHERE
> FIND_IN_SET(table1.key,table2.keys) GROUP BY table1.key
> 
> But, the flaw of that is that it'll only count one occurance of
> table1.key
> per row in table2. If a row has 'blue' twice, only one will be
> counted.
> 
> ---John Holmes...
> 
> ----- Original Message -----
> From: "ROBERT MCPEAK" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, May 23, 2002 1:22 PM
> Subject: [PHP] php/mysql join query help
> 
> 
> > I have a table with a field "key" containing a unique value.  I have
> a
> > second table containing a field called "keys" containg a
> pipe-delimited
> > list of values from the "key" table.
> >
> > I'd like to do a query that took each value from key, and matched it
> > agains the field "keys" in the second table, and returned a third
> table
> > of unique key values from the first table, and number of matches
> from
> > the second table.
> >
> > I've already set up a full text index for the values in the second
> > table and have done successful matches in simpler queries.
> >
> > Make sense?
> >
> > The table I'd like to generate might look like this:
> >
> > key matches
> > blue 50
> > yellow 6
> > green 29
> >
> > This would indicate that there were 3 key values in the first table
> > (blue, yellow, green), and, respectively, there were 50, 6, and 20
> > matches for each term in the second table.
> >
> > Can somebody help me do this?
> >
> > Thanks!
> >
> > -Bob
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php 
> >
> 
> 
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to