【发布时间】:2015-04-29 20:28:36
【问题描述】:
我确定我在这里犯了某种新手错误,但我不知道问题是什么。我正在尝试使用 LIKE 属性在 microsoft access 数据库中的一个表上运行一个简单的查询,以查找在特定字段中具有特定文本字符串的记录。更具体地说,名为Catreqs 的表有几个字段bib_num、MARC_336、MARC_337 和MARC_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*';