Hej moje pierwsze pytanie na SO! Anywho ...SQL - Łączenie wielu podobnych zapytań
Wciąż względnie newb w SQL, więc myślę, że być może brakuje czegoś tutaj. Moje pytanie brzmi: mam obecnie stół pełen numerów telefonów. Chcę mieć zapytanie, w którym znajdę numery telefonów podobne do listy, którą mam. Na przykład chcę znaleźć numery telefonów rozpoczynające się od "555123", "555321" i "555987". Wiem, że normalnie, jeśli masz listę numerów, które możesz po prostu zrobić zapytanie, takie jak
SELECT *
FROM phonenumbers
WHERE number in ('5551234567', '5559876543', ....);
Czy istnieje sposób, aby to zrobić z jak? Takich jak
SELECT *
FROM phonenumbers
WHERE number in like ('555123%', '555321%', '555987%'); //I know this doesn't actually work
Zamiast to zrobić indywidualnie
SELECT *
FROM phonenumbers
WHERE number like '555123%'
or number like '555321%'
or number like '555987%'; //Which does work but takes a long time
Albo jest tam łatwiej to zrobić, że jestem po prostu brakuje? Używam PostgreSQL, nie wiem, czy są jakieś polecenia, które by mu w tym pomogły. Dzięki!
Witamy SO! Mam retagged twoje pytanie, aby wyjaśnić, że odnosi się do postgres – AdaTheDev
Jaką wersję Postgres? Brzmi jak zadanie dla regexes: http://www.postgresql.org/docs/8.3/static/functions-matching.html –
'Które działa, ale zajmuje dużo czasu" - chyba że zmienisz charakter zapytania, inna składniowa reprezentacja tego samego będzie trwała tak długo. Czy kolumna jest indeksowana? – MattH