sql – Microsoft Jet通配符:星号或百分号?
Microsoft Jet中LIKE操作符中的多个字符通配符是什么,什么设置影响(如果有)?我正在支持运行在Microsoft Jet(在Access数据库)上的旧ASP应用程序,它使用LIKE运算符中的%符号,但是我有一个客户在他的环境中显然有问题,因为%字符被理解为常规字符,我假设他的多字符通配符是*.此外,我几乎肯定,在过去我已经使用*而不是%编写了查询的应用程序.最后,Microsoft Access(作为应用程序)也只能与*而不是%(但我不知道它是多么相关).
我只花了大约20分钟搜索互联网,没有任何有用的结果,所以我认为这将是有用的问stackoverflow.有人可能已经知道了,最好比任何其他随机论坛保持stackoverflow的潜在答案. 解决方法直接的答案是通配符的行为取决于正在使用的接口的ANSI查询模式.ANSI-89查询模式(‘传统模式’)使用*字符,ANSI-92查询模式(‘SQL Server兼容模式’)使用%字符.这些模式特定于ACE / Jet,并且仅与ANSI / ISO SQL-89和SQL-92标准相似. ADO接口(OLE DB)始终使用ANSI-92查询模式. DAO接口始终使用ANSI-89查询模式. 使用ODBC时,可以通过ExtendedAnsiSQL标志显式指定查询模式. 从2003版起,MS Access用户界面可以使用任一查询模式,因此不要在任何给定的时间假设它是一个或另一个(例如,不要在验证规则中使用查询模式特定的通配符). ACE / Jet SQL语法有一个ALIKE关键字,它允许ANSI-92查询模式字符(%和_),而不管接口的查询模式如何,但是ALIKE关键字不是与SQL-92兼容的轻微缺点ALIKE保持高度便携性).然而,主要的缺点是,我明白ALIKE关键字不是正式支持(尽管我不能想像它会消失或随时改变行为). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |