我想在包含阿拉伯文和英文文本的postgres DB中搜索一个表。例如:
id | content
-----------------
1 | دجاج
2 | chicken
3 | دجاج chicken
结果将使我进入第3行。
我想这与使用正则表达式限制字符有关,但是我找不到一种将两者都选择的干净解决方案。我试过了:
SELECT regexp_matches(content, '^([x00-\xFF]+[a-zA-Z][x00-\xFF]+)*')
FROM mg.messages;
但是,这仅匹配{}中的英语和一些非英语字符。
最佳答案
我对阿拉伯文本或RTL语言一无所知,但是这样做有效:
create table phrase (
id serial,
phrase text
);
insert into phrase (phrase) values ('apple pie');
insert into phrase (phrase) values ('فطيرة التفاح');
select *
from phrase
where phrase like ('apple%')
or phrase like ('فطيرة%');
http://sqlfiddle.com/#!15/75b29/2
关于sql - 如何在Postgresql中搜索不同的字符集?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20990835/