很抱歉,如果重复,但是我不知道如何找到这个问题。

嗨,这是我的桌子:

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

09-17 00:10