是否可以将“文件名”和“文件名”存储在 mysql 数据库中?
问问题
260 次
3 回答
4
我假设您的意思是,将“文件名”和“文件名”存储在具有唯一约束(例如主键)的列中?
CREATE
如果是这样,那么是的,但是您必须告诉 MySQL 在ing 或ALTER
ing 表时使用区分大小写的排序规则。这可以通过VARCHAR(...) COLLATE some_collation_cs
( see ) 或简单地完成VARCHAR(...) BINARY
。
于 2009-12-10T16:04:48.797 回答
2
是否可以将“文件名”和“文件名”存储在 mysql 数据库中?
如果您要插入的列是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
于 2009-12-10T16:02:22.140 回答
0
当您存储字符串时,MySQL 将始终保留大小写。
当您搜索字符串时,它通常会进行不区分大小写的搜索。这取决于排序规则,但默认值不区分大小写。
要进行区分大小写的搜索,您可以更改排序规则:
SELECT x FROM table WHERE y LIKE '%Filename%' COLLATE latin1_general_cs
有关详细信息,请参阅区分大小写。
于 2009-12-10T16:00:19.257 回答