很抱歉,如果重复,但是我不知道如何找到这个问题。
嗨,这是我的桌子:
CREATE TABLE `log_Valor` (
`idLog_Valor` int(11) NOT NULL AUTO_INCREMENT,
`Valor` text binary NOT NULL,
PRIMARY KEY (`idLog_Valor`)
)
ENGINE=InnoDB;
INSERT INTO `log_Valor` (Valor) VALUES ('teste');
INSERT INTO `log_Valor` (Valor) VALUES ('teste ');
我有2行:
1 | 'teste'
2 | 'teste '
当我跑步时:
SELECT * FROM log_Valor where valor = 'teste'
它返回两行。
如何使默认比较区分大小写,并且不必在查询BINARY中指定就不进行修整?
最佳答案
使用LIKE
代替=
。
SELECT * FROM log_Valor WHERE valor LIKE 'teste';
从documentation
特别是,尾随空格很重要,这对于使用=运算符执行的CHAR或VARCHAR比较而言并非如此。
DEMO