SQL LIKE 找不到明显的匹配项[关闭]
Posted
技术标签:
【中文标题】SQL LIKE 找不到明显的匹配项[关闭]【英文标题】:SQL LIKE doesn't find obvious matches [closed] 【发布时间】:2014-05-12 19:54:53 【问题描述】:我正在编写以下 SQL 查询:
SELECT *
FROM OS
WHERE OS.VERSION LIKE '%1%';
在我的表中有 char 1 的行。但是,它返回一个空结果。 我将 LIKE 子句稍微更改为不同的值,但它仍然不起作用。
我能做些什么来解决这个问题?
【问题讨论】:
让我们看看你的数据和架构 "SQL" Like 确实有效:P 好吧,就像 LIKE 运算符 确实 工作.. 所以请检查您的期望。 (并让我们有理由相信您的期望 - 即提供数据/模式或 SQL 小提琴。)OS.VERSION
的数据类型是什么?
相关:***.com/questions/719115/…
【参考方案1】:
尝试使用双引号和 * 作为通配符。您使用的是 Oracle 语法而不是 Access 语法。
【讨论】:
简单地说 MS-Access 不支持标准 SQLLIKE
语法会更正确。甚至 SQL Server 也能很好地支持它:technet.microsoft.com/en-us/library/ms179859.aspx
@ebyrob 虽然 Access 中的默认设置是使用 *
(这与您在 VBA 中执行相同操作的方式一致)您也可以使用 %
如果您将查询设置为符合 ANSI-92 SQL。 JET,Access 下的数据库,早于 SQL-Server,所以他们在这里做自己的事情也就不足为奇了......【参考方案2】:
LIKE 操作不能用于整数类型的列。我假设 OS.Version 是整数类型?
编辑1: 如果您指的是 MS Access,那么您必须使用星号 (*) 而不是 % 进行 LIKE。
【讨论】:
以上是关于SQL LIKE 找不到明显的匹配项[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Access 2007-搜索表单由于空白字段而未返回所有值--似乎找不到匹配的 LIKE