> I'm not even sure if I'm naming the question correctly. I hope I can > ask/explain it clearly enough to get a hint ;) > > Essentially... > > 1) I have a table of portfolio 'pieces', each row of which has a unique ID > > 2) I have a table of 'projects', which are comprised of a number of > 'pieces'. There is a column in this projects table called 'pieces', which > contains a delimitated string of all the 'pieces' related to that 'project', > in the format of '1||2||3||5||12||16||17||24||25' > > 3) When viewing a data sheet of a single row in the table 'pieces', I'd like > to be able to include a reference to any 'projects' that the said piece may > be a member of. > > I've tried a few things like > > $ID = '1'; > > SELECT * from projects WHERE pieces LIKE '$ID%' > - which will find anything that starts with $ID, such as > 1||3||4 > > SELECT * from projects WHERE pieces LIKE '%$ID%' > - which will find anything that contains $ID, such as > 1||3||4 > 5||1||72||8 > 3||5||21||9 > 3||5||17||9 > > What I can't figure out how to do is to select this > 3||5||1||9 > > Without selecting something like > 3||5||21||9 or > 3||5||17||9 > > Is this possible in a single sql statement, or do I have to select all rows > of 'projects' and use php to somehow loop through the results, explode the > delimitated strings, and look for the exact match this way, somehow. > > If you haven't noticed, I'm a little bit of a newbie, so please be nice :) > > Salut, > verdon >
It may be possible to cruft a query for what you want, but I'd suggest a slight re-design of your tables. Do some reading up on designing relational databases ("Database design for mere mortals" by Michael J. Hernandez is an excellent choice. ISBN: 0-201-69471-9). Any time you have more than one value in a field is an idication you should consider making that field a separate table. In your case I'd make a new table of 'pieces' and populate it with something that identifies which client AND project each piece belongs to. Maybe a combination of 2 fields (client id + project id). Then your select would include 2 'where' conditions checking client id and project id. btw, your email address bounced back - couldn't check the MX records. -- /* All outgoing email scanned by AVG Antivirus /* Amer Neely, Softouch Information Services W: www.softouch.on.ca E: [EMAIL PROTECTED] V: 519.438.5887 Perl | PHP | MySQL | CGI programming for all data entry forms. "We make web sites work!" -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]