相关疑难解决方法(0)

SQL - 组合多个类似的查询

嘿我关于SO的第一个问题!Anywho ...

在SQL上还是比较新的,所以我想我可能会遗漏一些东西.我的问题是我目前有一张满是电话号码的桌子.我想查询一下我搜索的电话号码与我的列表类似.例如,我想找到以"555123","555321"和"555987"开头的电话号码.我通常知道如果你有一个数字列表,你可以做一个查询,如

SELECT * 
  FROM phonenumbers 
 WHERE number in ('5551234567', '5559876543', .... );
Run Code Online (Sandbox Code Playgroud)

有没有办法像这样做?如

SELECT * 
  FROM phonenumbers 
 WHERE number in like ('555123%', '555321%', '555987%'); //I know this doesn't actually work
Run Code Online (Sandbox Code Playgroud)

而不是必须单独做这件事

SELECT * 
  FROM phonenumbers 
 WHERE number like '555123%' 
    or number like '555321%' 
    or number like '555987%'; //Which does work but takes a long time
Run Code Online (Sandbox Code Playgroud)

或者是否更容易做到这一点,我只是缺少?我正在使用postgres,我不知道是否有任何命令可以帮助解决这个问题.谢谢!

sql postgresql

27
推荐指数
3
解决办法
2万
查看次数

regexp python和sqlite的问题

我尝试在sqlite数据库上使用带有python的正则表达式检查带有模式的字符串.当我尝试使用"使用patern使用"搜索字符串时,我有问题例如:

cur.execute("insert into articles(id,subject) values (1,'aaa\"test\"')")
cur.execute("select id,subject from articles where id = 1")
print (cur.fetchall())

cur.execute("select subject from articles where  subject regexp '\"test\"' ")
print (cur.fetchall())
Run Code Online (Sandbox Code Playgroud)

我应该"在regexp之前其他方式编译器不喜欢...语法错误

[(1, 'aaa"test"')]
[] <????? should found 
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?

我的正则表达式函数:con.create_function("regexp",2,regexp)

python regex sqlite

10
推荐指数
1
解决办法
9711
查看次数

标签 统计

postgresql ×1

python ×1

regex ×1

sql ×1

sqlite ×1