删除postgreSQL中的口音的功能

删除postgreSQL中的口音的功能,第1张

概述Possible Duplicate: 07000 我试图删除重音,所以当我做一个SELECT它忽略它们. 例: SELECT * FROM table WHEREtable.id ILIKE 'Jose'; 它返回: JoséJoseJóséJóse 或类似的东西. 我发现这些功能,他们没有工作,我认为这可能是我使用Struts 1.X的事实,请检查出来,告诉我我错了什么或应该使用什么其

Possible Duplicate:
07000

我试图删除重音,所以当我做一个SELECT它忽略它们.

例:

SELECT * FROM table WHEREtable.ID IliKE 'Jose';

它返回:

JoséJoseJóséJóse

或类似的东西.

我发现这些功能,他们没有工作,我认为这可能是我使用Struts 1.X的事实,请检查出来,告诉我我错了什么或应该使用什么其他功能.

第一功能

CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$DECLARE    input_string text := ;BEGINinput_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 ;         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,'ÒÓÔÕÖ','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附带的 unaccent模块.
somedb=# CREATE EXTENSION unaccent;CREATE EXTENSIONsomedb=# SELECT unaccent('Hôtel'); unaccent---------- Hotelsomedb=# SELECT * FROM table WHERE lower(unaccent(table.ID)) = lower('Jose');

通过产生一个不重要的,较低的指数来加速事情:

somedb=# CREATE INDEX CONCURRENTLY ON table (lower(unaccent(ID)));
总结

以上是内存溢出为你收集整理的删除postgreSQL中的口音的功能全部内容,希望文章能够帮你解决删除postgreSQL中的口音的功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1169755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存