首页 > 文章列表 > 如何使用 MySQL 正则表达式精确匹配含有日文假名的字段?

如何使用 MySQL 正则表达式精确匹配含有日文假名的字段?

397 2024-12-31

如何使用 MySQL 正则表达式精确匹配含有日文假名的字段?

使用 mysql 正则表达式查询含有日文假名的字段

对于查询含有日文平假名和片假名的字段,常规的 regexp 匹配可能不理想。以下是如何使用自定义函数进行准确查询:

`<pre>
create definer=wq19bar@% function jp_char_inside(s text) returns int(11)
begin

declare h text;
declare p integer;
declare l integer;
declare head text;
declare utf_8 text;
set h = hex(s);
set p = 1;
set l = length(h);
while p &lt;= l do
    set head = substr(h, p, 1);
    if head &lt; '8' then
        set p = p + 2;
    else
        set utf_8 = substr(h, p, 6);
        if (utf_8 &gt;= 'E38181' and utf_8 &lt;= 'E3829E') then
            return 1;
        end if;
        if (utf_8 &gt;= 'E382A1' and utf_8 &lt;= 'E383BE') then
            return 1;
        end if;
        set p = p + 6;
    end if;
end while;

return 0;
end
</pre>`

来源:1730618008