Câu hỏi đầu tiên của tôi về SO! Anywho ...SQL - Kết hợp nhiều truy vấn như truy vấn
Vẫn còn tương đối mới ở SQL vì vậy tôi nghĩ rằng tôi có thể thiếu một cái gì đó ở đây. Câu hỏi của tôi là tôi hiện đang có một bảng đầy đủ các số điện thoại. Tôi muốn có một truy vấn nơi tôi tìm kiếm các số điện thoại tương tự với danh sách tôi có. Ví dụ: tôi muốn tìm số điện thoại bắt đầu bằng '555123', '555321' và '555987'. Tôi biết bình thường nếu bạn có danh sách các số bạn chỉ có thể thực hiện truy vấn như
SELECT *
FROM phonenumbers
WHERE number in ('5551234567', '5559876543', ....);
Có cách nào để thực hiện việc này không? Chẳng hạn như
SELECT *
FROM phonenumbers
WHERE number in like ('555123%', '555321%', '555987%'); //I know this doesn't actually work
Thay vì phải làm điều này riêng
SELECT *
FROM phonenumbers
WHERE number like '555123%'
or number like '555321%'
or number like '555987%'; //Which does work but takes a long time
Hoặc là có một dễ dàng hơn để làm điều này mà tôi chỉ thiếu? Tôi đang sử dụng postgres, tôi không biết liệu có bất kỳ lệnh nào mà nó có thể giúp ích được không. Cảm ơn!
Chào mừng bạn đến SO! Tôi đã gắn thẻ lại câu hỏi của bạn để làm rõ câu hỏi liên quan đến postgres – AdaTheDev
Phiên bản Postgres nào? Âm thanh như một công việc cho regexes: http://www.postgresql.org/docs/8.3/static/functions-matching.html –
'Làm việc nào nhưng mất một thời gian dài' - trừ khi bạn thay đổi bản chất của truy vấn, biểu diễn cú pháp khác nhau của cùng một thứ sẽ mất nhiều thời gian. Cột có được lập chỉ mục không? – MattH