我有一个python脚本从PostgreSQL数据库中检索一个值(表ID)。但是列名包含冒号,我相信这会阻止它工作。我已经在没有冒号的列上测试过了,它确实得到了正确的ID。你知道吗
有问题的线路是
cur.execute("SELECT tID from titles where name like 'METEOROLOG:WINDSPEED_F' order by structure, comp1, comp2")
rowswind=cur.fetchall()
当我打印rowswind时,没有返回任何内容(只有空括号)
我也试过。。你知道吗
cur.execute('SELECT tID from titles where name like "METEOROLOGY:WINDSPEED_F" order by structure, comp1, comp2')
但这又带来了错误
psycopg2.ProgrammingError: column "METEOROLOGY:WINDSPEED_F" does not exist
(确实如此)。你知道吗
我也尝试过用我能想到的任何方法(如反斜杠)来转义冒号,但没有任何效果,我只是得到语法错误。你知道吗
任何建议都欢迎。谢谢。你知道吗
新增20190429
我现在尝试了参数化查询,但也没有成功。你知道吗
wind=('METEOROLOGY:WINDSPEED_F')
sql="SELECT tID from titles where name like '{0}' order by structure, comp1, comp2".format(wind)
我尝试了许多不同的双引号和单引号组合,试图逃出冒号,但都没有成功。你知道吗
出现此错误是因为您在查询的
WHERE
语句中的目标值周围使用了双引号,如下所示:你在这里得到0个结果:
因为存在值为“M”的0行ETEOROLOG:风速在
name
列中。这可能是因为你把气象学拼写错了。你使用}非常有用。你知道吗
LIKE
的方式,也可以使用=
。^如果要使用%
来查找其他值,如该值,则{示例:
这将返回
name
中这些值的结果:JOSHUA,JOSHUA,JOSHUA,josh,josh。如果我直接做了NAME LIKE 'JOSH'
,那么我只能找到JOSH
的精确值的结果。你知道吗由于要在
WHERE
中设置值all caps,请尝试这样做:向查询中添加一个UPPER()
:相关问题 更多 >
编程相关推荐