Python LIKE查询的结果不一致:pyodbc与Access

Python LIKE查询的结果不一致:pyodbc与Access,python,sql,ms-access,pyodbc,Python,Sql,Ms Access,Pyodbc,作为Python脚本的一部分,我得到了一系列应该在Access数据库中执行的查询。不幸的是,直接在MS Access中使用的查询提供了一些输出记录,而在Python脚本中,这些记录没有返回任何内容(也没有错误)。和数据库的连接和一般语法应该很好,因为简单的查询(比如从表中选择一列)工作正常。下面是一个带有以下给定查询之一的代码: import pyodbc baza = r"C:\base.mdb" driver = "{Microsoft Access Driver (*.mdb, *.ac

作为Python脚本的一部分,我得到了一系列应该在Access数据库中执行的查询。不幸的是,直接在MS Access中使用的查询提供了一些输出记录,而在Python脚本中,这些记录没有返回任何内容(也没有错误)。和数据库的连接和一般语法应该很好,因为简单的查询(比如从表中选择一列)工作正常。下面是一个带有以下给定查询之一的代码:

import pyodbc

baza = r"C:\base.mdb"
driver = "{Microsoft Access Driver (*.mdb, *.accdb)}"

access_con_string = r"Driver={};Dbq={};".format(driver, baza)
cnn = pyodbc.connect(access_con_string)
db_cursor = cnn.cursor()

expression = """SELECT F_PARCEL.PARCEL_NR, F_PARCEL_LAND_USE.AREA_USE_CD, F_PARCEL_LAND_USE.SOIL_QUALITY_CD, F_ARODES.TEMP_ADRESS_FOREST, F_SUBAREA.AREA_TYPE_CD, F_AROD_LAND_USE.AROD_LAND_USE_AREA, F_PARCEL.COUNTY_CD, F_PARCEL.DISTRICT_CD, F_PARCEL.MUNICIPALITY_CD, F_PARCEL.COMMUNITY_CD, F_SUBAREA.SUB_AREA
FROM F_PARCEL INNER JOIN (F_PARCEL_LAND_USE INNER JOIN ((F_ARODES INNER JOIN F_AROD_LAND_USE ON F_ARODES.ARODES_INT_NUM = F_AROD_LAND_USE.ARODES_INT_NUM) INNER JOIN F_SUBAREA ON F_ARODES.ARODES_INT_NUM = F_SUBAREA.ARODES_INT_NUM) ON (F_PARCEL_LAND_USE.SHAPE_NR = F_AROD_LAND_USE.SHAPE_NR) AND (F_PARCEL_LAND_USE.PARCEL_INT_NUM = F_AROD_LAND_USE.PARCEL_INT_NUM)) ON F_PARCEL.PARCEL_INT_NUM = F_PARCEL_LAND_USE.PARCEL_INT_NUM
WHERE (((F_ARODES.TEMP_ADRESS_FOREST) Like ?) AND ((F_AROD_LAND_USE.AROD_LAND_USE_AREA)<?) AND ((F_ARODES.TEMP_ACT_ADRESS)= ?))
ORDER BY F_PARCEL.PARCEL_NR, F_PARCEL_LAND_USE.SHAPE_NR;"""

rows = db_cursor.execute(expression, ("14-17-2-03*", 0.0049, True)).fetchall()

for row in rows:
    print row

cnn.close()
导入pyodbc
baza=r“C:\base.mdb”
driver=“{Microsoft Access驱动程序(*.mdb,*.accdb)}”
access_con_string=r“Driver={};Dbq={};”。格式(Driver,baza)
cnn=pyodbc.connect(访问控制字符串)
db_cursor=cnn.cursor()
表达式=“选择F_地块、地块编号、F_地块、土地使用、区域使用、F_地块、土地使用、土壤质量、F_地块、临时地址、森林、F_分区、区域类型、F_地块、土地使用、区域县、区、市、社区、分区分区
从F_地块内部连接(F_地块内部连接F_地块内部连接F_地块内部连接F_地块内部连接F_地块使用F_地块使用F_地块使用。ARODES地块使用。ARODES地块使用)到F_地块内部连接F_地块使用。ARODES地块使用。ARODES地块使用形状=F地块使用。形状(F_地块_土地_使用。地块_内部_数量=F_区域_土地_使用。地块_内部_数量))在F_地块上。地块_内部_数量=F_地块_土地_使用。地块_内部_数量

其中((F_ARODES.TEMP_address_FOREST)Like?)和((F_AROD_LAND_USE.AROD_LAND_USE_arou arou区域)在Access本身中运行的查询和从外部应用程序运行的查询之间存在类似通配符的差异,这让您感到困惑

从Access本身运行查询时,需要使用星号作为通配符:
“14-17-2-03*”


当从外部应用程序(如Python应用程序)运行查询时,您需要使用百分号作为通配符:
“14-17-2-03%”

相似性如何?