At 07:03 PM 8/16/99 -0400, Rob Page wrote:
If there are one or more areacodes in the list it will render something like:
SELECT stuff FROM contact where phone LIKE '(540)%' OR phone LIKE '(703)%' OR phone LIKE '(813)%'
or at least it looks like it should! :^)
I think this would be REALLY slow.
Depends on the backend. Sybase handles this blindingly quickly. I know because IDS' e-mail portal builds an OR list like this for every word in the subject line of an e-mail to match against a table to see if it recognizes the word as a domain name we host. The table it scans holds about 200,000 domain names, and almost 1 million records total, but the queries execute in a couple seconds, tops. The field is indexed, but it only holds 24 characters and the domain names can be longer. So on any word longer than a certain number of characters, we have to do a wildcard search. (Don't ask.) Anyway, Sybase and many other databases recognize that they can use indexes to speed queries of the form "LIKE 'xxx%'". So the above query will execute as quickly on such databases as an '=' or 'IN'-based query.