字符串比较问题在 Postgres 中包含“_”

Issue with string comparison contains "_" in Postgres

比较 _ 符号时在 Postgres(版本 11)中出现比较问题。

我有一个字符串(如下所示)我想让它与一个词进行比较,并想检查这个词_WIN_是否存在于字符串中。如果是,它应该给出 true。

但是当我这样搜索时 '%_WIN_%' 即使搜索到的字符串不完全包含这个词,它也会给出 TRUE。

任何人都可以提出我做错了什么吗?

select 'New_vit_Vitamin_D_IND-tonline_WINTERSEAS_2020.02.09' ILIKE '%_WIN_%'

注意:预期结果应为 FALSE,但给出的结果为 TRUE

下划线是SQL中单个字符的通配符。如果要搜索字符本身,则需要对其进行转义:

ILIKE '%\_WIN\_%' ESCAPE '\'