使用 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,%”时,它不返回任何行
最佳答案
不是答案,但将其作为一个答案发布,因为我无法格式化评论。
看看这个并在您自己的机器上使用 DUMP()...看看这是否有帮助。
SQL> select dump('Smith, Stan') from Dual;
DUMP('SMITH,STAN')
-----------------------------------------------------
Typ=96 Len=11: 83,109,105,116,104,44,32,83,116,97,110
如果算起来,该字符串有 11 个字符(包括逗号和空格)。逗号是字符 44,空格是字符 32。如果您查看您的字符串,但没有看到逗号应该在的位置 44,您就会知道这就是问题所在。然后,您可以让我们知道您在那里看到的内容(就该角色而言,我知道发布“Leno,Jay”将侵犯隐私)。
此外,请确保逗号之前没有任何多余字符(可能是不可打印的字符!)。只需比较您用作输入的两个字符串,看看差异可能在哪里。
关于sql - like 查询中的逗号无法返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38644137/