如何使用单个字符而不是通配符
Posted
技术标签:
【中文标题】如何使用单个字符而不是通配符【英文标题】:How to use single character instead of wildcard 【发布时间】:2018-11-23 15:33:18 【问题描述】:我在互联网上找不到该问题的解决方案,我得到的所有东西都与通配符有关,我不想在我的情况下使用通配符
我想找到所有以'_N'结尾的表,所以我试图执行类似的操作
select * from dba_tables v
where v.table_name like '%_N';
但是 '' 通配符意味着搜索所有带有名称的表 [可以是所有内容][需要是某个字符]N 我只想使用那个 '' 我想要所有带有 ' 的表_N' 结尾,例如像 'EXAMPLE_N' 'HELP_ME_N' 这样的表。
我怎么能不使用'_'通配符?
【问题讨论】:
Escape underscore in PL/SQL的可能重复 ***.com/q/21380261/1132334的可能重复 对不起,你是对的,我正在尝试“如何不使用通配符”等,我得到的唯一结果是关于通配符的线程。谢谢! 【参考方案1】:你可以使用escape
:
where v.table_name like '%$_N' escape $
默认转义字符是\
:
where v.table_name like '%\_N';
同样有效。
【讨论】:
不知道,但我猜是因为回答明显的骗子往往会受到惩罚¯_(ツ)_/¯【参考方案2】:您可以使用\
转义'_'
select * from table
where table_name.column_name like '%\_N';
【讨论】:
不知道,但我猜是因为回答明显的骗子往往会受到惩罚¯_(ツ)_/¯【参考方案3】:你也可以使用这个:
select * from dba_tables v
where regexp_like(v.table_name,'.*_N$');
【讨论】:
以上是关于如何使用单个字符而不是通配符的主要内容,如果未能解决你的问题,请参考以下文章