可能重复:
PostgreSQL是否支持“重音不敏感”排序规则?
我试图删除重音,所以当我选择时,它会忽略它们。
例子:
SELECT * FROM table WHERE
table.id ILIKE 'Jose';
它返回:
José
Jose
Jósé
Jóse
或者类似的东西。
我发现这些函数无法工作,我想这可能是因为我使用的是Struts 1。十、 请检查它们,告诉我哪里错了,或者我应该使用什么其他功能。
第一个函数
CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$
DECLARE
input_string text := $1;
BEGIN
input_string := translate(input_string, 'âãäåāăąÁÂÃÄÅĀĂĄ', 'aaaaaaaaaaaaaaa');
input_string := translate(input_string, 'èééêëēĕėęěĒĔĖĘĚ', 'eeeeeeeeeeeeeee');
input_string := translate(input_string, 'ìíîïìĩīĭÌÍÎÏÌĨĪĬ', 'iiiiiiiiiiiiiiii');
input_string := translate(input_string, 'óôõöōŏőÒÓÔÕÖŌŎŐ', 'ooooooooooooooo');
input_string := translate(input_string, 'ùúûüũūŭůÙÚÛÜŨŪŬŮ', 'uuuuuuuuuuuuuuuu');
return input_string;
END;
$$ LANGUAGE plpgql;
第二个功能
CREATE OR REPLACE FUNCTION norm_text_latin(character varying)
RETURNS character varying AS
$BODY$
declare
p_str alias for $1;
v_str varchar;
begin
select translate(p_str, 'ÀÁÂÃÄÅ', 'AAAAAA') into v_str;
select translate(v_str, 'ÉÈËÊ', 'EEEE') into v_str;
select translate(v_str, 'ÌÍÎÏ', 'IIII') into v_str;
select translate(v_str, 'ÌÍÎÏ', 'IIII') into v_str;
select translate(v_str, 'ÒÓÔÕÖ', 'OOOOO') into v_str;
select translate(v_str, 'ÙÚÛÜ', 'UUUU') into v_str;
select translate(v_str, 'àáâãäå', 'aaaaaa') into v_str;
select translate(v_str, 'èéêë', 'eeee') into v_str;
select translate(v_str, 'ìíîï', 'iiii') into v_str;
select translate(v_str, 'òóôõö', 'ooooo') into v_str;
select translate(v_str, 'ùúûü', 'uuuu') into v_str;
select translate(v_str, 'Çç', 'Cc') into v_str;
return v_str;
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
在NetBeans中运行文件时,这两个函数都会生成以下错误:
ERROR: unterminated dollar-quoted string at or near "*the string that starts the function*"
使用PostgreSQL附带的uncent模块。
somedb=# CREATE EXTENSION unaccent;
CREATE EXTENSION
somedb=# SELECT unaccent('Hôtel');
unaccent
----------
Hotel
somedb=# SELECT * FROM table WHERE lower(unaccent(table.id)) = lower('Jose');
并通过生成一个无重音、大小写的索引来加快速度:
somedb=# CREATE INDEX CONCURRENTLY ON table (lower(unaccent(id)));
问题内容: (据我所知)Android中是否有任何方法都没有java.text.Normalizer从字符串中删除任何重音符号。例如,“éàù”变成“ eau”。 如果可能,我想避免解析String来检查每个字符! 问题答案: 在Android中可用(无论如何都是最新版本)。您可以使用它。 编辑 供参考,这里是如何使用: (从下面评论中的链接粘贴)
因此,我有一个名为的postgresql表,其中有两列:和。列是jsonb类型的,指定给定日期时间的各种状态数据。下面是该表的一个示例: 如果我想删除两个json项的重复项,该怎么办?例如,
问题内容: 我遇到了一个问题Python- 仅通过使用filter和lambda 删除列表中的重复项,OP询问如何使用独占和函数从Python列表中删除重复项。 这让我感到奇怪,从理论的角度来看,是否可以仅使用函数从Python列表中删除重复项? 如果是这样,我们该怎么做? 在这种情况下,“删除重复项”是指“仅使原始列表中存在的每个元素出现一次”,因此应变为。 另外,目标是只编写一个,因此代码将像
问题内容: 我刚刚编译了一个包含100万个地名的数据库。我将在自动完成的小部件中使用它来查找城市。这些地方很多都带有重音符号…我希望能够在用户键入不带重音符号的名称时查找记录。 为了做到这一点,我在第二栏中有一个名字的重音符号。这些记录中的许多记录仍然是空白的,因此我想编写一个查询来填充它们。在直接的MySQL中可能吗?如果是这样,怎么办? 问题答案: 如果您为该列设置了适当的排序规则,则该字段中
问题内容: 我有一个包含我的对象的数组。每个人都有财产。 有没有比我的数组中找到重复的帖子ID的更有效方法? 问题答案: 我将建议2解决方案。 两种方法都必须是平等的 使帖子符合可哈希和平等 在这里,我假设您的struct(或类)具有type 的属性。 解决方案1(丢失原始订单) 要删除重复的内容,您可以使用 解决方案2(保留订单)
我想删除double[]数组中的重复项。不幸的是,我不能使用ArrayList或其他任何东西,它必须是“普通”双数组。我试图使用类数组的binarySearch()方法,但找不到一个很好的解决方案,因为我不仅要搜索,还要删除重复项。那么,每次删除这样的副本时,我都必须缩短长度。 这个问题有什么解决办法吗?