小编The*_*Jug的帖子

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万
查看次数

使用子进程发送密码

我正在尝试使用python子进程模块登录到一个安全的ftp站点,然后获取一个文件.但是,我一直在试图在请求密码时发送密码.到目前为止,我有以下代码:

from subprocess import Popen, PIPE

proc = Popen(['sftp','user@server', 'stop'], stdin=PIPE)
proc.communicate('password')
Run Code Online (Sandbox Code Playgroud)

这仍然在密码提示符处停止.如果我手动输入密码,则转到ftp站点,然后在命令行输入密码.我见过人们建议使用pexpect,但长话短说我需要一个标准的库解决方案.无论如何还有子进程和/或任何其他stdlib?我上面忘记了什么?

python sftp subprocess

18
推荐指数
4
解决办法
4万
查看次数

使用通配符的Psycopg2会导致TypeError

目前我正在尝试搜索数据库以获取某些事件.我的查询是这样的

SELECT * FROM events WHERE summary ILIKE E'%test%' AND start_time > '2010-10-01'
Run Code Online (Sandbox Code Playgroud)

简单地说,我需要查询来查看日历事件的数据库,并返回任何带有'test'的摘要,并在本月初之后.

从数据库命令行查询时,返回预期结果.但是,当我尝试在我的Python脚本中使用psycopg2时:

cursor.execute("SELECT * FROM events WHERE summary ILIKE E'%test%' AND start_time > %(begin)s ", {'begin' : datetime.datetime(2010,10,1) })
Run Code Online (Sandbox Code Playgroud)

我收到类型错误

*** TypeError: 'dict' object does not support indexing
Run Code Online (Sandbox Code Playgroud)

做一些初始的谷歌搜索它听起来像我正在使用我的通配符的方式.我可能错了,我可能错过了一些我看不到的简单.希望来自社区的一双新鲜的眼睛可以纠正我的愚蠢;)

python psycopg2

6
推荐指数
1
解决办法
7511
查看次数

芹菜预定清单返回无

我是Celery的新手,我一直在尝试设置一个简单的脚本来安排和取消安排任务.但是我觉得我遇到了一个奇怪的问题.我有以下设置

from celery import Celery
app = Celery('celery_test',
             broker='amqp://',
             backend='amqp')

@app.task
def add(x, y):
    return x + y
Run Code Online (Sandbox Code Playgroud)

我启动我的芹菜服务器很好,可以添加任务.现在,当我想获得一系列活动任务时,事情似乎变得奇怪了.当我转到使用inspect获取计划任务列表时,它只运行一次,然后每次都返回None.

>>> i = app.control.inspect()
>>> print i.scheduled()
{u'celery@mymachine': []}
>>> print i.scheduled()
None
>>>
Run Code Online (Sandbox Code Playgroud)

无论是否添加任务,都会发生这种情况.我想找到一种方法来始终从我的芹菜队列中返回任务列表.我想这样做,所以我可以找到一个以前排队的任务,撤销它,并重新安排它.我觉得我在这里缺少一些基本的东西.

python rabbitmq celery

5
推荐指数
2
解决办法
1942
查看次数

标签 统计

python ×3

celery ×1

postgresql ×1

psycopg2 ×1

rabbitmq ×1

sftp ×1

sql ×1

subprocess ×1