SELECT entity_id
FROM entities
WHERE part1='Foo'
OR part2='Foo'
OR part3='Foo'
...
OR part12='Foo';
Or perhaps slightly more concise:
SELECT entity_id
FROM entities
WHERE 'Foo' IN (part1, part2, part3, ..., part12);
I'd much prefer something like:
SELECT e.entity_id
FROM entities e
INNER JOIN entity_parts ep ON e.entity_id=ep.entity_id
WHERE ep.part='Foo'
When you get to searching for different combinations of parts, the advantages of joining become even more apparent:
SELECT e.entity_id
FROM entities e
INNER JOIN entity_parts ep1 ON e.entity_id=ep1.entity_id
INNER JOIN entity_parts ep2 ON e.entity_id=ep2.entity_id
WHERE ep1.part='Foo'
AND ep2.part IN ('Bar', 'Baz')
And in terms of the e-mail example, it's much easier to, say, enforce a UNIQUE constraint over a single column.
use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name
|