Sql 为什么我的LIKE查询仅在Microsoft Access 2013中不返回任何记录?
我的SQL查询如下: 从供应商中选择* 供应商名称在哪里 比如“s%” 当我在W3 School的TryIt Editor v1.2上提交此查询时,它会返回许多记录,其中供应商名称以字母“s”开头,这与预期的一样 但是,当我在Access 2013中对自己的数据库运行此查询时,它不会返回任何记录,即使我的表名和字段名与W3的示例相同 不使用“LIKE”的查询似乎可以正常工作,例如: 从供应商中选择* 其中,供应商名称=零件供应商,股份有限公司 返回相应的记录。只有当使用“LIKE”时,Access才不会返回任何记录 我的问题是,有什么理由让LIKE查询不返回任何记录?后端数据源是一个Microsoft JET数据库这是一个相对较小的数据库-不需要完整的SQL Server,但我认为这不会有什么区别。当我执行查询时,Access不会抱怨语法或抛出错误 来自: MicrosoftJet使用带有Like运算符的部分匹配字符或通配符,这与大多数SQL方言中使用的字符不同。星号*字符与零个或多个字符匹配,相当于ANSI SQL中的百分比字符。其他Microsoft Jet部分匹配字符包括问号(与单个字段中的任何字符匹配)和数字符号(与单个字段中的任何数字匹配) 应按如下方式修改查询: 从供应商名称为“s*”的供应商中选择* 来自: MicrosoftJet使用带有Like运算符的部分匹配字符或通配符,这与大多数SQL方言中使用的字符不同。星号*字符与零个或多个字符匹配,相当于ANSI SQL中的百分比字符。其他Microsoft Jet部分匹配字符包括问号(与单个字段中的任何字符匹配)和数字符号(与单个字段中的任何数字匹配) 应按如下方式修改查询:Sql 为什么我的LIKE查询仅在Microsoft Access 2013中不返回任何记录?,sql,ms-access,jet,sql-like,ms-access-2013,Sql,Ms Access,Jet,Sql Like,Ms Access 2013,我的SQL查询如下: 从供应商中选择* 供应商名称在哪里 比如“s%” 当我在W3 School的TryIt Editor v1.2上提交此查询时,它会返回许多记录,其中供应商名称以字母“s”开头,这与预期的一样 但是,当我在Access 2013中对自己的数据库运行此查询时,它不会返回任何记录,即使我的表名和字段名与W3的示例相同 不使用“LIKE”的查询似乎可以正常工作,例如: 从供应商中选择* 其中,供应商名称=零件供应商,股份有限公司 返回相应的记录。只有当使用“LIKE”时,Acces
从供应商名称为“s*”的供应商中选择* 为什么JET在LIKE操作中使用*而不是%作为通配符?相反,为什么标准SQL使用ANSI标准%通配符而不是标准*通配符?在我看来,如果Access在JET数据库查询中检测到使用完整SQL语法,它应该发出某种警告。我认为真正的问题是Access为什么不使用标准%通配符?它类似于IE vs Internet标准。SQL无疑已成为数据库查询的事实标准,但我的意思是根据我的经验,regex等,*是通配符。所以,这就是为什么我要问这两个问题——为什么基于ANSI的SQL偏离了传统标准,为什么Access偏离了SQL ANSI标准。为什么JET在类似的操作中使用*而不是%作为通配符?相反,为什么标准SQL使用ANSI标准%通配符而不是标准*通配符?在我看来,如果Access在JET数据库查询中检测到使用完整SQL语法,它应该发出某种警告。我认为真正的问题是Access为什么不使用标准%通配符?它类似于IE vs Internet标准。SQL无疑已成为数据库查询的事实标准,但我的意思是根据我的经验,regex等,*是通配符。所以,这就是为什么我要问这两个问题——为什么基于ANSI的SQL偏离了传统标准,为什么Access偏离了SQL ANSI标准。另请参见:我已经回答了好几次了。请参阅,以获得全面的答案。另请参阅:根据我所知,这已经回答了好几次了。请参阅以获取全面的答案。