You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询如何正确匹配包含西里尔字符₽的文本内容

SQL查询西里尔字符₽无返回的解决方法

核心原因

查询无返回基本是三类问题:客户端编码转换导致传入的₽字符失真、raw_text字段字符集不支持该Unicode字符、排序规则匹配逻辑不兼容直接写字符的查询方式。

具体解决方案

  • 第一步:确认字段字符集配置
    SQL Server需确保raw_text字段为NVARCHAR/NCHAR类型;MySQL/MariaDB需确保字段字符集为utf8mb4;PostgreSQL默认UTF8编码无需额外调整。
  • 第二步:使用Unicode编码指代字符查询(彻底规避客户端编码转换问题)
    ₽的Unicode编码为U+20BD,不同数据库的查询写法如下:

    SQL Server

    SELECT raw_text
    FROM [table]
    WHERE raw_text LIKE N'%' + NCHAR(0x20BD) + N'%'
    

    MySQL/MariaDB

    SELECT raw_text
    FROM `table`
    WHERE raw_text LIKE CONCAT('%', CHAR(0x20BD USING utf8mb4), '%')
    

    PostgreSQL

    SELECT raw_text
    FROM "table"
    WHERE raw_text LIKE '%' || U&'\20BD' || '%'
    
  • 第三步:校验存储的字符编码
    如果上述查询仍无返回,可打印字段内容的十六进制编码,确认存储的目标字符确实是U+20BD(UTF8编码对应十六进制序列为E282BD),避免混淆外形相似的其他字符。
    以MySQL为例,可执行以下语句查看:
    SELECT HEX(raw_text) FROM `table` LIMIT 10;
    

内容的提问来源于stack exchange,提问作者LCMa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:15:04