mysql 中根据关键字进行模糊查询,按照匹配度进行排序的SQL语句样例

本文提供了一个示例SQL查询,用于在MySQL中根据用户输入的关键字进行模糊匹配,并根据匹配度对结果进行排序。查询涉及到多个条件如ID、中文名、英文名等,并使用了MyBatis的语法。

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

需求:根据用户输入的关键字(中英文区别,)然后根据关键字进行匹配,根据匹配度高低进行排序;

<!-- 根据搜索字符模糊查询,根据匹配度进行排序 -->
    <select id="getPOIListByName" parameterType="entity.poi.Poi" resultMap="poiResultMap">
        SELECT * FROM gt_poi 
        <if test="id != null" >AND  id=#{id}</if>
        <if test="cnName != null and cnName != ''">AND cn_name like CONCAT('%','${cnName}','%' )  </if>
        <if test="enName != null and enName != ''">AND en_name like CONCAT('%','${enName}','%' )  </if>
        <if test="online != null">AND online=#{online}</if>
        <if test="approve != null">AND approve=#{approve}</if>
        <if test="status != null">AND status=#{status}</if>
        <if test="continentId != null">AND continent_id=#{continentId}</if>
        <if test="countryId != null">AND country_id=#{countryId}</if>
        <if test="provinceId != null">AND province_id=#{provinceId}</if>
        <if test="cityId != null">AND city_id=#{cityId}</if>
        <if test="regionId != null">AND region_id=#{regionId}</if>
        <if test="type != null">AND type=#{type}</if>
             ORDER BY <if test="cnName != null and cnName != ''">
                             REPLACE(cn_name,'${cnName}','')  </if>
                            <if test="enName != null and enName != ''">
                             REPLACE(en_name,'${enName}','')  </if>
        <if test="startRow>=0 and pageRow>0">limit #{startRow},#{pageRow}</if>

    </select>


注意:不要select* ;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值