嘿我的第一个问题啊Anywho …
在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,我不知道是否有任何命令,这将有助于这一点。谢谢!
解决方法
您可以使用SIMILAR TO并将标签与|分开管’555123%| 555321%| 555987%’
例如:
SELECT * FROM phonenumbers WHERE number SIMILAR TO '555123%|555321%|555987%'