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

数据库特殊字符导出Excel报错,如何在现有查询中搜索十六进制值?

当然可以用十六进制值来搜索这个男性符号!这种情况大概率是符号被编码转换、隐藏,或者你的查询工具没有正确渲染Unicode字符导致你看不到它,但数据库里其实存着对应的十六进制值。下面给你分不同数据库类型整理了具体的查询方法:

核心背景说明

男性符号♂的Unicode编码是U+2642,对应的十六进制值为2642,我们可以基于这个值来构建查询语句。


各数据库查询示例

  • MySQL/MariaDB
    用UNHEX()函数把十六进制值转成字符进行匹配,加上BINARY确保精确匹配二进制编码:

    SELECT * FROM your_table 
    WHERE column_name LIKE BINARY '%' UNHEX('2642') '%';
    

    也可以用正则表达式更灵活地匹配:

    SELECT * FROM your_table 
    WHERE column_name REGEXP UNHEX('2642');
    
  • PostgreSQL
    支持直接使用Unicode转义序列,或者通过十六进制转字符来查询:

    -- 方法1:Unicode转义匹配
    SELECT * FROM your_table 
    WHERE column_name ~ E'\\u2642';
    -- 方法2:十六进制转字符后匹配
    SELECT * FROM your_table 
    WHERE column_name LIKE '%' || chr(0x2642) || '%';
    
  • SQL Server
    注意要加N前缀确保Unicode字符的正确处理:

    SELECT * FROM your_table 
    WHERE column_name LIKE N'%' + NCHAR(0x2642) + N'%';
    -- 或者直接转换十六进制值
    SELECT * FROM your_table 
    WHERE column_name LIKE N'%' + CONVERT(nvarchar(10), 0x2642) + N'%';
    

额外排查建议

  1. 先检查表字段的字符编码(比如是否为UTF-8/utf8mb4),如果编码不支持Unicode,符号可能被存为乱码,但十六进制查询依然能定位到对应行。
  2. 找到匹配的行后,可以单独导出这些行测试,确认是不是隐藏的♂符号导致了Excel导出报错。

内容的提问来源于stack exchange,提问作者LOL. NO.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:17:28