对这个模糊语句的查询,我觉得就是一个磨人的大猪蹄子,不接受反驳
举个栗子
import cx_Oracle
conn=cx_Oracle.connect(username/userpass@192.168.1.10/db)
cursor = conn.cursor()
#这里举个栗子,查询语句
love="hello_world"
cursor.execute("select * from PythonList where like %s"%love)
solove=cursor.fetchall()
print(solove)
#这个是错误的,会报错
如以上所见这是一个很常见的查询语句,但是报错是啥博主给忘了,也懒得试一下了。希望哪个大佬看到的博主这句话,有刚好遇到这个问题的,麻烦再下面的评论哪里叨叨一句。
可能在平时都会在oracle中用到模糊查询,但是出错之后会被一些大佬追究成是因为添加了分号也就是 ; ,也就是上面一个点下面一个逗号的这个数据库常用语句符号。但其实真正的原因是变量的使用,真正的方法应该是
import cx_Oracle
conn=cx_Oracle.connect(username/userpass@192.168.1.10/db)
cursor = conn.cursor()
#这里举个栗子,查询语句
#love="hello_world"#错误错误
#错误的原因是这里
love="'hello_world%'"#正确语句
cursor.execute("select * from PythonList where like %s"%love)
solove=cursor.fetchall()
print(solove)
#此时这里能够正常从数据库获取值
原因在此声明一下,虽然不是很熟oracle,但是这里出错的原因是因为没有在这个变量的引号里面再加一个引号,另外里面加一个引号的同时还需要加一个%符号,也就是百分号。这个百分号的作用就是写作查询的作用。
介绍一下%(百分号)的使用方法
%abc 结尾是abc的模糊查询
abc% 开头是abc的模糊查询
%abc% 中间是abc的模糊查询
%ab_c 这个下划线代表任意一个字符,也就是结尾是 ab+任意一个字符+c
emmm
末尾在给加一个非变量查询语句
cursor.execute(“select * from PythonList where like 'ab_c%' ”)
心情好顺便给点个赞(傲娇式要赞)