为什么PostgreSQL不能将几个空格与正则表达式匹配"s+"



UPDATE:注释表明数据中可能存在一些不可见的空格chars和。这似乎是问题的根源。


我有下表:

SELECT id, name FROM phototagging_category;
id |      name       
----+-----------------
1 | new
2 | hhh
3 | Más      Habana
4 | Más Habana
(4 rows)

当我发出以下查询时,我希望最后两行与正则表达式匹配,但只返回最后一行:

SELECT id, name 
FROM phototagging_category WHERE UNACCENT(name) ~* 'mass+habana';
id |    name    
----+------------
4 | Más Habana
(1 row)

我使用的是PostgreSQL 12(docker镜像postgis/postgis:12-3.0-alpine)

你知道为什么第三排不匹配吗?

正如评论中所建议的那样,第三行似乎有一些不可见的字符。

更新后使用:

UPDATE phototagging_category SET name='Mas     Habana' WHERE id=3;

该行现在显示在查询结果中。

最新更新