mybatis、mysql使用函数实现英文模糊查询中文的功能

本文介绍如何在不添加额外字段的情况下,利用MySQL内置函数实现英文模糊查询中文的功能。通过创建并使用特定的SQL函数,可以实现对中文字段的拼音首字母模糊查询,适用于任何字段内容。文中还提到一个查询英文时的小问题及其解决方案,并提供了函数使用的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近需要做个mysql英文模糊查询中文的功能,常规写法是在表中添加一个要搜索中文的英文字段用于存储要查询中文的英文拼音或者拼音首字母。

        这样确实简单方便,但是我不想这么做,我希望mysql本身就能支持这样的查询功能。于是翻遍了资料,终于找到了这个方法,只需要将函数写入数据库中,数据库中所有表字段都能支持这个功能。不需要做如何修改即可使用。

参考资料:mysql中文字段转拼音首字母,以及中文拼音模糊查询 - zenghansen - 博客园

 此功能需要用到两个mysql函数:

CREATE DEFINER=`root`@`%` FUNCTION `pinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8mb3
BEGIN
    DECLARE V_COMPARE VARCHAR(255);
    DECLARE V_RETURN VARCHAR(255);
    DECLARE I INT;
    SET I = 1;
    SET V_RETURN = '';
    while I < LENGTH(P_NAME) do
        SET V_COMPARE = SUBSTR(P_NAME, I, 1);
        IF (V_COMPARE != '') THEN
            #SET V_RETURN = CONCAT(V_RETURN, ',',
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值