使用Oracle db,
Select name from name_table where name like 'abc%';
返回值为“abc,cd”的一行但是当我在我的like查询中使用逗号前面的逗号进行选择查询时,它无法返回任何值。
Select name from name_table where name like 'abc,%';
不返回任何行。如何在类似查询中的%之前处理逗号?
实施例: 数据库在名称列中有“Sam,Smith”,当有“Sam%”它返回一行时,当我执行“Sam,%”时它不会返回任何行
答案 0 :(得分:2)
不是回答,但是将其发布为一个,因为我无法在评论中进行格式化。
看看这个并在你自己的机器上使用DUMP()......看看这是否有帮助。
SQL>从双重选择转储('史密斯,斯坦')
DUMP('SMITH,STAN')
-----------------------------------------------------
Typ=96 Len=11: 83,109,105,116,104,44,32,83,116,97,110
如果计数,则字符串为11个字符(包括逗号和空格)。逗号是字符44,空格是字符32.如果你查看你的字符串并且你看不到逗号应该是44,你就会知道问题所在。然后你可以让我们知道你在那里看到了什么(只是为了那个角色,我理解发布" Leno,Jay"会侵犯隐私)。
另外,请确保在逗号之前没有任何额外字符(可能是不可打印的字符!)。只需比较您用作输入的两个字符串,看看差异可能在哪里。