是否可以在mysql-database中存储“Filename”和“filename”?
答案 0 :(得分:4)
我假设你的意思是,将'Filename'和'filename'存储在具有UNIQUE约束的列中(例如PRIMARY KEY)?
如果是,那么是的,但是你必须告诉MySQL在CREATE
或ALTER
表时使用区分大小写的排序规则。这可以使用VARCHAR(...) COLLATE some_collation_cs
(see)或仅VARCHAR(...) BINARY
完成。
答案 1 :(得分:2)
是否可以在mysql-database中存储“Filename”和“filename”?
如果您要插入的列是UNIQUE
,请确保其排序规则区分大小写:
CREATE TABLE t_ci (test VARCHAR(50) PRIMARY KEY COLLATE latin1_swedish_ci);
INSERT
INTO t_ci
VALUES
('Filename'),
('filename');
-- Fails
CREATE TABLE t_cs (test VARCHAR(50) PRIMARY KEY COLLATE utf8_bin);
INSERT
INTO t_cs
VALUES
('Filename'),
('filename');
- Succeeds
答案 2 :(得分:0)
在存储字符串时,MySQL将始终保留大小写。
当您搜索字符串时,它通常会进行不区分大小写的搜索。这取决于排序规则,但默认值不区分大小写。
要进行区分大小写的搜索,您可以更改排序规则:
SELECT x FROM table WHERE y LIKE '%Filename%' COLLATE latin1_general_cs
有关详细信息,请参阅case sensitivity。