rkg*_*rkg 2 regex unicode ascii sql-server-2005
您好,我试图通过执行以下查询来查找数据库(SQL Server)中文本中包含字符\xc3\xa9的所有行。
\n\nSELECT COUNT(*) FROM t_question WHERE patindex(N'%[\\xE9]%',question) > 0;\n\nSELECT COUNT(*) FROM t_question WHERE patindex(N'%[\\u00E9]%',question) > 0;\nRun Code Online (Sandbox Code Playgroud)\n\n但我发现两个问题:(a)它们都返回不同数量的行,(b)它们返回没有指定字符的行。
\n\n我构建正则表达式和比较 Unicode 的方式正确吗?
\n\n编辑:
\n\n问题列使用数据类型 存储nvarchar。\n但以下查询给出了正确的结果。
SELECT COUNT(*) FROM t_question WHERE question LIKE N'%\xc3\xa9%';\nRun Code Online (Sandbox Code Playgroud)\n
为什么不使用SELECT COUNT(*) FROM t_question WHERE question LIKE N\'%\xc3\xa9%\'?
注意:Like并且patindex不接受正则表达式。
在 SQL Server 模式语法中,[\\xE9]意味着匹配指定集中的任何单个字符。即匹配\\, x,E或9。因此以下任何字符串都将与该模式匹配。
| 归档时间: |
|
| 查看次数: |
8165 次 |
| 最近记录: |