我正在学习“python 2.7”
我已经创建了一个postgres数据库,但是我愚蠢地将一些描述重命名为*。
有没有办法在搜索字符串中使用*运算符选择数据 - 我试过
* name,/ * name,“* name”,'* name'
非常感谢
import psycopg2
db = psycopg2.connect(database='Database', user="postgres", host="192.168.0.1", password="xyz")
cursor = db.cursor()
cursor.execute("SELECT * FROM table_name WHERE description = '*name'")
dbinfo = cursor.fetchone()
print dbinfo[0]
编辑 我将上面的代码更改为包含“''”并打印dbinfo [0]
没有'print'就不会出错 但是随着'打印',我得到错误..
TypeError: 'NoneType' object has no attribute '__getitem__'
答案 0 :(得分:1)
这在很多方面都是如此糟糕,以至于值得努力返回并将列名更改为更标准,而不是可能使数据库的每个用户感到困惑,并且很难对其编写正确的sql。
答案 1 :(得分:0)
我向所有发现我错误的人道歉
在程序的早期部分,当" description = * name"得到了保存,它在名称后面保存了一大堆空白,因此我的搜索字符串找不到匹配!