在posgresSQL中,我可以使用低/高字符数据(a / A)
搜索不敏感但是在数据中使用japansese字符我该怎么做呢。 例如,在数据中我有Name =“アアバババ”
如何使用condtion进行搜索Name =“アアアバババ”将返回上述记录。
感谢您的帮助。
答案 0 :(得分:0)
感谢大家的帮助,我尝试了这段代码,这对我有用,但我没有尝试大数据
CREATE OR REPLACE FUNCTION h2z_kana(text)
RETURNS text AS
$BODY$
DECLARE
zenkaku alias FOR $1;
result text;
i int;
zt varchar[] = ARRAY['ガ', 'ギ', 'グ', 'ゲ', 'ゴ', 'ザ', 'ジ', 'ズ', 'ゼ', 'ゾ', 'ダ', 'ヂ', 'ヅ', 'デ', 'ド', 'バ', 'ビ', 'ブ', 'ベ', 'ボ', 'パ', 'ピ', 'プ', 'ペ', 'ポ', 'ヴ'];
ht varchar[] = ARRAY['ガ', 'ギ', 'グ', 'ゲ', 'ゴ', 'ザ', 'ジ', 'ズ', 'ゼ', 'ゾ', 'ダ', 'ヂ', 'ヅ', 'デ', 'ド', 'バ', 'ビ', 'ブ', 'ベ', 'ボ', 'パ', 'ピ', 'プ', 'ペ', 'ポ', 'ヴ'];
BEGIN
result = zenkaku;
-- 2バイトで変換
FOR i IN 1..26 LOOP
result = replace(result, ht[i], zt[i]);
END LOOP;
-- 1バイトで変換
result = translate(result,
' アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョワイエカケー、。・」「゙,<.>/?_}]*:+;{[~@|\\`^=-)(&%$#"!',
' アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョヮヰヱヵヶー、。・」「゛,<.>/?_}]*:+;{[ ̄@|¥`^=-)(&%$#"!'
);
RETURN result;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;