2016-05-06 9 views
0

これは重複していますが、その質問を見つける方法がわかりません。デフォルトのテキスト列を作成する方法比較バイナリ(大文字と小文字が区別され、トリム)

こんにちは、この私のテーブル:私は実行すると

1 | 'teste' 
2 | 'teste ' 

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行を持っている

SELECT * FROM log_Valor where valor = 'teste' 

それは2つの行を返します。

大文字と小文字の区別を大文字と小文字に区別し、クエリで指定しなくてもトリミングしないようにするにはどうすればよいですか?

+0

で行わCHARまたはVARCHARの比較のために真実ではないとなる、重要です大文字と小文字の区別が関係していますか?あなたの質問は大文字小文字ではなく末尾のスペースについてです。 – Barmar

+0

私は編集しますが、私は両方を必要とします – George

答えて

0

の代わりにLIKEを使用してください。特にdocumentation

から

SELECT * FROM log_Valor WHERE valor LIKE 'teste'; 

、末尾のスペースは何=演算子

DEMO

+0

私はLikeを使うことができると知っていますが、これはこのテーブルのデフォルトにすることができますか?つまり、ユーザーがSELECT * FROM log_Valorを実行すると、valor = 'teste'の場合は、単一の行のみが返されます。 – George

+0

ああ、私はユーザーvarcharする必要があるという意味ですか? – George

+0

いいえ、 'VARCHAR'は挿入時に末尾のスペースを捨てますので、動作しません。 'CHAR'は末尾のスペースを格納しますが、' = 'はそれらを無視します。 – Barmar

関連する問題