grep-like search help

Hello, noob here.

I have a table called 'entries' with lots of sentences, one per row (id). I need to find specific sentences that have the words I'm looking for anywhere in them. For example:

1. The bird entered the kitchen through the door.

2. You left the door of your car open.

3. Close the window or the bird will get out of the car.

If I search for 'bird' and 'door', I want only the sentence with the id 1 to come up. If I search for 'door' and 'car', I want only the sentence with the id 2 to come up. If I search for 'bird' and 'car', I want only the sentence with the id 3 to come up.

So, basically, what this grep command would do:

cat my.file | grep bird | grep door

But I'm not getting anywhere with any search technique or plugin I've tried so far. Any ideas?

isn't that just the condition

'sentence like %bird%door%'?

Although that will only get them where they appear in that particular order. You could interate all the possibilities

ie conditions => ['sentence like %bird%door% or sentence like %door%bird%'] but that will get messy the more words you have in your search.

but there might be something else you can do in SQL.

Cheers Simon

Simon Macneall wrote:

but that will get messy the more words you have in your search.

Yeah, I was figuring I was gonna have to do something like an 'explode' with the search terms at some point.

Would conditions => [‘sentence like %bird% and sentence like %door%’] do the job?

If you're using MySQL, you can create a FULLTEXT index on the field(s) in question and use MATCH:

<http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html&gt;

Other RDBMSs may have an equivalent.

HTH,