EAV er en gyldig mulighed - det kan være komplekst og akavet med det, der effektivt bliver til utypedata.
XML med XPath ville også være en mulighed: http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html
Jeg vil tro, at de fleste tilfælde vil kræve, at du genererer dynamisk SQL, hvis felterne til at søge kan variere.