【发布时间】:2016-07-28 18:28:20
【问题描述】:
使用 Oracle 数据库,
Select name from name_table where name like 'abc%';
返回一行,其值为“abc, cd”,但是当我在类似查询中使用 % 前的逗号进行选择查询时,它无法返回任何值。
Select name from name_table where name like 'abc,%';
不返回任何行。如何在 like 查询中处理 % 之前的逗号?
示例: 数据库在名称列中有“Sam,Smith”,当类似有“Sam%”时它返回一行,当我执行“Sam,%”时它不返回任何行
【问题讨论】:
-
数据库在名称列中有“Sam, Smith”,当 like 有“Sam%”时它返回一行,当我执行“Sam,%”时它不返回任何行
-
你能做到
select dump(name, 16) from name_table where name like 'abc%';并将结果添加到问题中吗?我怀疑这不是一个普通的逗号,但可能是其他一些看起来相似的 Unicode 字符...... -
可能是逗号上的编码。如果您存储了 ms 逗号(比如您或从 MS Office 剪切并粘贴的某人),除非您使用相同的字符,否则它将不匹配。
-
编码,你一定会喜欢的。
-
该转储是字符串
'GOOGLE INC',它没有逗号。我了解您可能不想提供真实数据,但如果您不向我们提供我们可以使用的任何东西,我们将无法帮助您。自己查看转储,看看哪个代码点被报告为你认为是逗号的,至少。