【问题标题】:SELECT query using LIKE property in Microsoft Access returns no results when it should在 Microsoft Access 中使用 LIKE 属性的 SELECT 查询应返回不返回任何结果
【发布时间】:2015-04-29 20:28:36
【问题描述】:

我确定我在这里犯了某种新手错误,但我不知道问题是什么。我正在尝试使用 LIKE 属性在 microsoft access 数据库中的一个表上运行一个简单的查询,以查找在特定字段中具有特定文本字符串的记录。更具体地说,名为Catreqs 的表有几个字段bib_numMARC_336MARC_337MARC_338。 MARC_336 字段中有一个文本字符串,我想要一个查询来选择该文本字符串包含字符“txt”的所有记录。

这是我的查询:

SELECT [Catreqs].record_num, [Catreqs].MARC_336
FROM [Catreqs]
WHERE [Catreqs].MARC_336 Like '%txt%';

我应该注意到我在 MS Access 设计视图中创建了这个查询,这是我切换到 SQL 视图时生成的查询。我对 SQL 有点熟悉,对 Access 更不熟悉,所以这实际上是我处理它的首选方式。

我也尝试过使用Like '*txt*',但这也没有返回任何结果。作为参考,以下是这些字符所在的整个文本字符串:

text txt rdacontent

关于为什么会失败以及如何修复它的任何建议想法?

谢谢!

【问题讨论】:

  • 您的查询在 WHERE 子句中真的有三个左括号和两个右括号吗?我很惊讶它会运行。去掉所有的括号。你不需要它们。
  • 那是Access生成的sql。我试过几次移除括号,但 Access 将它们放回原处。
  • MARC_336 列是什么数据类型(在设计视图中打开表查看)? TheDeveloper 提供的答案是正确的。如果您将 % 更改为 * 您的查询有效。右键单击您的查询选项卡并转到 SQL 视图。按原样粘贴:SELECT [Catreqs].record_num, [Catreqs].MARC_336 FROM Catreqs WHERE [Catreqs].MARC_336 Like '*txt*';

标签: sql ms-access


【解决方案1】:

在 Access 中,对于字符串,您必须使用 * 字符。 检查[Catreqs] 是否有行,其中MARC_336 包含“txt”。

这是Access的官方文档:
https://support.office.com/en-us/article/Like-Operator-b2f7ef03-9085-4ffb-9829-eef18358e931?ui=it-IT&rs=en-001&ad=IT&omkt=en-001

【讨论】:

  • 我首先尝试使用 * 无济于事。 MARC_336 字段中肯定有包含“txt”的行。
猜你喜欢
  • 2018-05-28
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 2013-10-03
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多