我想找到一个PostgreSQL表的所有行都有西里尔字符。我尝试使用此查询:SELECT * FROM "items" WHERE (title SIMILAR TO '%[\u0410-\u044f]%')
,我在这里:
Find all rows using some Unicode range (such as Cyrillic characters) with PostgreSQL?
它似乎有用,但除了西里尔语的价值,我也得到一些拉丁值。这怎么可能?我想也许,即使我正在写拉丁字母,如果我使用带有西里尔字符的键盘,其中一些可以被理解为西里尔字母。
无论如何,我在Java项目中使用这个数据库。通过代码存在更有效的解决方案吗?
谢谢
答案 0 :(得分:0)
您需要使用reqular表达式。
PostgreSQL中的函数名是REGEXP_MATCHES
。
文档:
另一种解决方案是使用true / false运算符:~
。
答案 1 :(得分:0)
使用相同的面具:
t=# select regexp_replace('pol 398Родное Луговое abc 123','[^\u0410-\u044f]','','g');
regexp_replace
----------------
РодноеЛуговое
(1 row)