【问题标题】:Case sensitive searching in MS AccessMS Access 中区分大小写的搜索
【发布时间】:2015-10-22 09:26:39
【问题描述】:

我有一个查询,它在数据库中的行中搜索匹配的字符串。示例行可能是:

This is a row which contains a String

我当前运行的查询在语法上与

相同
SELECT table.column FROM table WHERE table.column LIKE "*String*"

尽管它返回找到文本“字符串”的每一行,无论大小写。

MS Access 2010 是否有任何类型的区分大小写的字符串比较器,我应该使用它来代替它?

【问题讨论】:

  • 老把戏 WHERE lower(table.column) LIKE lower("String") 可能会奏效。
  • 查询需要匹配我正在搜索的大小写词,例如如果我搜索“总计”,则不应返回包含“总计”的行
  • 有时我阅读和评论太快,同时做其他事情......对不起。
  • 没关系,我必须承认我这样做也是有罪的!

标签: sql ms-access ms-access-2010


【解决方案1】:

恐怕您将不得不求助于 VBA 方法。幸运的是,可以在 JET SQL 中使用 VBA 方法(尽管性能可能不是最好的)。 VBA Instr 方法允许您指定比较模式(0 = 二进制 = 区分大小写):

SELECT table.column FROM table WHERE INSTR(table.column, "String", 0) > 0

【讨论】:

    【解决方案2】:

    我认为LIKE '*String*' 不是 LIKE "*String*"

    查看更多LIKE condition in MS Access

    【讨论】:

      【解决方案3】:

      你可以使用Instr:

      SELECT t.FieldName
      FROM Table t
      WHERE ((InStr(1,[FieldName],"aB",0)>"0"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-15
        • 2013-06-15
        • 1970-01-01
        • 2012-07-18
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 2010-10-13
        相关资源
        最近更新 更多