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 不支持标准 SQL LIKE 语法会更正确。甚至 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

如果找不到匹配项,replace 会做啥? (引擎盖下)

CoreData:找不到 NSEntityDescription 的唯一匹配项

为啥在 regex char 可选时找不到匹配项

str.contains 找不到部分匹配项

Vuex 和 array.findIndex:找不到匹配项