带有 Like 语句的 MS-Access 上的 SQL 请求似乎永远无法正常工作

Posted

技术标签:

【中文标题】带有 Like 语句的 MS-Access 上的 SQL 请求似乎永远无法正常工作【英文标题】:SQL request on MS-Access with Like statement seems to be never working 【发布时间】:2017-07-03 07:00:09 【问题描述】:

我在一个请求中尝试了几种“Like”语法(我使用的是 VB.NET 和一个 MS-ACCESS 2010 数据库),除了抛出异常之外,它们都没有得到任何其他结果。为什么?我对此一无所知。

我做了这个解决方法:而不是

SELECT dbFieldDisplayName FROM dbTableName WHERE dbFieldSearchName Like 'A*'

(我也尝试使用“A%”而不是“A*”)

我用过:

SELECT dbFieldDisplayName 
FROM dbTableName 
WHERE dbFieldSearchName >='A' AND dbFieldSearchName <'AZZZ'

有人知道为什么我的 Like 语句总是触发异常吗?有更好的解决方法吗?

提前致谢。

【问题讨论】:

有什么异常? 您是否尝试使用 LIKE 'A%' 而不是 'A*'? (百分比而不是星号) Microsoft Jet wildcards: asterisk or percentage sign?的可能重复 我尝试了 A% 和 A*,结果相同:“您的请求中缺少参数”(或类似于此) 这通常意味着字段名称拼写错误。 【参考方案1】:

如果你需要 col 值以 A 开头的行,你应该像 % 一样使用

SELECT dbFieldDisplayName FROM dbTableName WHERE dbFieldSearchName Like 'A%'

(在 SQL 中 * ...表示所有列 ..不是所有字符)

【讨论】:

在您的查询中没有参数,所以显示真正的查询和适当的数据样本...... e ..【参考方案2】:

最后,我的 MS-ACCESS 的行为多么奇怪……

我卸载了我所有的办公组件(包括 MS-ACCESS),然后重新安装,现在“Like”语句可以正常工作,使用 % 作为通配符。

请求:

SELECT dbFieldDisplayName FROM dbTableName WHERE dbFieldSearchName Like 'A%'

现在可以正常工作了,因为它应该可以正常工作。

【讨论】:

以上是关于带有 Like 语句的 MS-Access 上的 SQL 请求似乎永远无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

在 MS-Access 中生成 INSERT INTO 语句

带有 LIKE 运算符的 Select 语句中的 MySQL 案例

带有“LIKE”语句的雄辩查询在 Laravel 6 中不起作用

带有 CriteriaQuery 的 JSONB 列上的“LIKE”表达式

在带有 LIKE 的 CASE 语句中使用 GROUP_CONCAT 列别名

SQL server 2000 Like 语句用法