如何在MySQL查询及CONCAT()函数中正确使用欧元符号?
在MySQL中使用欧元符号的解决方案
看起来你遇到的问题是用HTML实体&euro在CONCAT里只输出文本,这是因为MySQL不会自动解析HTML实体,得用实际的欧元符号或者对应的Unicode编码来处理。下面分两种场景给你解决方法:
一、基础查询中直接使用欧元符号
有两种可靠的方式:
- 直接输入欧元符号(€):只要你的数据库、表字段以及客户端连接的字符集是
utf8mb4(推荐)或者支持欧元符号的编码(比如latin1),就可以直接在查询里写欧元符号:SELECT '€' AS euro_symbol; -- 或者查询字段时直接关联 SELECT amount, '€' AS currency FROM tab1; - 用Unicode编码生成:如果直接输入符号有问题(比如终端不支持输入),可以用欧元符号的Unicode编码
8364,通过CHAR()函数生成:SELECT CHAR(8364 USING utf8mb4) AS euro_symbol;
二、在CONCAT()函数中使用欧元符号
针对你遇到的CONCAT问题,替换掉HTML实体,用下面两种方法:
- 直接拼接欧元符号:最直观的方式,直接把
&euro换成实际的€:SELECT CONCAT(tab1.amount, '€') FROM tab1; - 用Unicode编码拼接:如果直接输入符号有兼容性问题,用
CHAR()函数嵌入到CONCAT里:SELECT CONCAT(tab1.amount, CHAR(8364 USING utf8mb4)) FROM tab1;
关键注意事项
- 检查字符集配置:确保你的表字段字符集是
utf8mb4,可以用下面的语句查看:
如果不是,需要修改字段或表的字符集:SHOW CREATE TABLE tab1;ALTER TABLE tab1 MODIFY COLUMN amount VARCHAR(20) CHARACTER SET utf8mb4; - 客户端连接字符集:连接MySQL时要指定字符集为
utf8mb4,比如命令行连接时:
或者在连接后执行:mysql -u username -p --default-character-set=utf8mb4
这样才能保证查询结果里的欧元符号正确显示。SET NAMES utf8mb4;
内容的提问来源于stack exchange,提问作者Thiyagu
相关产品推荐
相关产品推荐

