MySQL的选择以特殊字符结尾的字符串

问题描述

因此,如果我在MySQL 5.5中执行此查询:

SELECT mycol FROM mytable WHERE mycol LIKE '%Â'

我获得了mycol以A的任何变体结尾的所有记录,所以我得到了

LA
la
LÂ

如何修改此查询,以便仅获得以特定特殊字符结尾的结果

show create table mytable

CREATE TABLE `direcciones` (
 `idusuario` varchar(50) NOT NULL,`iddireccion` int(10) NOT NULL AUTO_INCREMENT,`calle` varchar(150) NOT NULL,**-- THIS IS MY FIELD**
 `numero` int(4) NOT NULL,`piso` varchar(10) NOT NULL,`puerta` varchar(10) NOT NULL,`localidad` varchar(100) NOT NULL,`provincia` varchar(100) NOT NULL,`cp` int(5) NOT NULL,PRIMARY KEY (`iddireccion`)
) ENGINE=InnoDB AUTO_INCREMENT=4192 DEFAULT CHARSET=latin1


show variables like '%character_set%'



character_set_client    utf8    
character_set_connection    utf8    
character_set_database  utf8    
character_set_filesystem    binary  
character_set_results   utf8    
character_set_server    latin1  
character_set_system    utf8    
character_sets_dir  /usr/share/mysql/charsets/  

解决方法

要防止mysql使用列的排序规则设置(允许这些匹配),请指定您的字符串为二进制:

SELECT mycol FROM mytable WHERE mycol LIKE BINARY '%Â';

SELECT mycol FROM mytable WHERE mycol LIKE CAST('%Â' AS BINARY);

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...