首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql-database可以像UNIX一样保存区分大小写的字符串吗?

mysql-database可以像UNIX一样保存区分大小写的字符串吗?
EN

Stack Overflow用户
提问于 2009-12-10 23:58:16
回答 3查看 259关注 0票数 0

可以在mysql数据库中存储"Filename“和"filename”吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-11 00:04:49

我想您的意思是,将‘filename’和‘filename’存储在具有唯一约束(如主键)的列中?

如果是,则是,但您必须告诉MySQL在对表执行CREATE​或ALTER​时使用区分大小写的排序规则。这可以使用VARCHAR(...) COLLATE some_collation_cs (see)或简单的VARCHAR(...) BINARY来完成。

票数 4
EN

Stack Overflow用户

发布于 2009-12-11 00:02:22

可以在mysql数据库中存储“文件名”和“文件名”吗?

如果要插入的列是UNIQUE,请确保其排序规则区分大小写:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2009-12-11 00:00:19

当您存储字符串时,MySQL将始终保留大小写。

当您搜索字符串时,它通常执行不区分大小写的搜索。这取决于排序规则,但默认值是不区分大小写的。

要执行区分大小写的搜索,可以更改排序规则:

代码语言:javascript
复制
SELECT x FROM table WHERE y LIKE '%Filename%' COLLATE latin1_general_cs

有关详细信息,请参阅case sensitivity

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1881971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档