嘿,我的第一個問題就是這樣! Anywho ...SQL - 組合多個查詢
還是比較新的SQL,所以我想我可能會錯過這裏的東西。我的問題是我目前有一張桌子上裝滿了電話號碼。我想查詢一下我在哪裏搜索與我擁有的列表類似的電話號碼。例如,我想查找以'555123','555321'和'555987'開頭的電話號碼。我通常知道,如果你有一個數字列表,你可以只是做一個查詢,如
SELECT *
FROM phonenumbers
WHERE number in ('5551234567', '5559876543', ....);
有沒有辦法做到這一點像?如
SELECT *
FROM phonenumbers
WHERE number in like ('555123%', '555321%', '555987%'); //I know this doesn't actually work
而不是必須單獨做到這一點
SELECT *
FROM phonenumbers
WHERE number like '555123%'
or number like '555321%'
or number like '555987%'; //Which does work but takes a long time
或者是有一個更容易做到這一點,我只是失蹤?我使用postgres,我不知道是否有任何命令可以幫助解決這個問題。謝謝!
歡迎SO!我已經重申您的問題,澄清它與postgres – AdaTheDev 2010-02-11 15:41:28
什麼版本的Postgres?聽起來像一個正則表達式的工作:http://www.postgresql.org/docs/8.3/static/functions-matching.html – 2010-02-11 15:47:21
'哪些工作,但需要很長時間 - - 除非你改變查詢的性質,一個同一件事的不同語法表示將需要很長時間。列索引? – MattH 2010-02-11 15:52:52