¡Hola mi primera pregunta sobre SO! Anywho ...SQL - Combinando varias consultas similares
Todavía relativamente nuevo en SQL, así que creo que me puede faltar algo aquí. Mi pregunta es que actualmente tengo una mesa llena de números de teléfono. Quiero hacer una consulta en la que busco números de teléfono similares a los de una lista que tengo. Entonces, por ejemplo, quiero encontrar números de teléfono que comiencen con '555123', '555321' y '555987'. Sé que normalmente si usted tiene una lista de números que sólo podría hacer una consulta como
SELECT *
FROM phonenumbers
WHERE number in ('5551234567', '5559876543', ....);
¿Hay una manera de hacer esto con su semejante? Tal como
SELECT *
FROM phonenumbers
WHERE number in like ('555123%', '555321%', '555987%'); //I know this doesn't actually work
En lugar de tener que hacer esto de forma individual
SELECT *
FROM phonenumbers
WHERE number like '555123%'
or number like '555321%'
or number like '555987%'; //Which does work but takes a long time
O hay una manera más fácil de hacer esto que estoy solo falta? Estoy usando postgres, no sé si hay algún comando que pueda ayudar con eso. ¡Gracias!
Bienvenido al SO! He retomado su pregunta para aclarar que se relaciona con postgres – AdaTheDev
¿Qué versión de Postgres? Suena como un trabajo para expresiones regulares: http://www.postgresql.org/docs/8.3/static/functions-matching.html –
'Lo cual funciona pero tarda mucho tiempo - a menos que cambie la naturaleza de la consulta, una la representación sintáctica diferente de la misma cosa tomará tanto tiempo. ¿Está indexada la columna? – MattH