如何使用单个字符而不是通配符

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$');

【讨论】:

以上是关于如何使用单个字符而不是通配符的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件名匹配之通配符使用

[MySQL] 用通配符进行过滤

通配符过滤正则表达式

JPQL模糊匹配单个字符

SQL --------------- like 查询

如何使用 Arduino 在 LCD 上无延迟()方法闪烁单个字符?