SQL 不在括号中的字符的语法
SQL syntax for characters not in brackets
我正在使用 ODBC 访问 Microsoft Access 数据库。
根据 the w3schools SQL tutorial,“任何不在括号中的字符”的 ANSI-92 通配符应为 ^
。但是,他们自己的示例使用了 ANSI-89 通配符 !
.
MSDN documentation也很迷惑。 ANSI-92
部分显示 ^
字符,但它旁边的示例实际使用 !
。这看起来像是一个错误,我已填写反馈以通知 Microsoft。
正确的“任何不在括号中的字符”语法是什么?这是否适用于多个数据库和访问技术(DAO、ODBC、OleDB、MySQL 等)?
无法跨数据库执行此操作。 SQL 支持恰好有两个通配符的 LIKE
语法:
%
匹配零个或多个字符。
_
正好匹配一个字符。
也可以输入 \
字符来转义通配符。
此外,SQL 服务器支持字符 类,如教程中所述(这似乎是准确的)。唯一想到的其他数据库是 Sybase(具有相同的代码库)。 MS Access 只有一个带有特殊字符的混蛋版本。它从不支持这方面的 SQL 标准。
大多数其他数据库实现了完整的正则表达式支持(YAY!),但它们的语法因数据库而异。所以,没有一种独立于数据库的方式来做你想做的事。
我正在使用 ODBC 访问 Microsoft Access 数据库。
根据 the w3schools SQL tutorial,“任何不在括号中的字符”的 ANSI-92 通配符应为 ^
。但是,他们自己的示例使用了 ANSI-89 通配符 !
.
MSDN documentation也很迷惑。 ANSI-92
部分显示 ^
字符,但它旁边的示例实际使用 !
。这看起来像是一个错误,我已填写反馈以通知 Microsoft。
正确的“任何不在括号中的字符”语法是什么?这是否适用于多个数据库和访问技术(DAO、ODBC、OleDB、MySQL 等)?
无法跨数据库执行此操作。 SQL 支持恰好有两个通配符的 LIKE
语法:
%
匹配零个或多个字符。_
正好匹配一个字符。
也可以输入 \
字符来转义通配符。
此外,SQL 服务器支持字符 类,如教程中所述(这似乎是准确的)。唯一想到的其他数据库是 Sybase(具有相同的代码库)。 MS Access 只有一个带有特殊字符的混蛋版本。它从不支持这方面的 SQL 标准。
大多数其他数据库实现了完整的正则表达式支持(YAY!),但它们的语法因数据库而异。所以,没有一种独立于数据库的方式来做你想做的事。