首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么字符串搜索在sybase中区分大小写,而在许多其他数据库中不区分大小写

为什么字符串搜索在sybase中区分大小写,而在许多其他数据库中不区分大小写
EN

Stack Overflow用户
提问于 2012-08-10 15:14:22
回答 3查看 1.3K关注 0票数 2

我在我的应用程序开发中使用了SQL ServerMySQL RDMS数据库。我刚接触sybase数据库,我发现字符串搜索在默认情况下是区分大小写的,而在SQL ServerMySQL中则不是。

  1. 关于字符串搜索case-sensitivity?
  2. If有什么标准吗?这个字符串列有唯一的键索引,那么如果发现两行有相同的字符串,但一个是大写的,另一个是小写的,那会有什么问题吗?

代码语言:javascript
复制
SELECT * FROM TABLE1 WHERE COL1 = 'Sample'
SELECT * FROM TABLE1 WHERE COL1 = 'sample'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-10 15:18:37

  1. 我认为这取决于MySQL中的CHARACTER SETcollation。默认字符集为latin1_swedish_ci,其中ci代表不区分大小写。您可以将其更改为latin1_swedish_cs以使其区分大小写。

在MySQL和SQL server中,您都可以在列、表、数据库和服务器级别上设置字符集和排序规则。

http://dev.mysql.com/doc/refman/5.5/en/case-sensitivity.html

  • Unique索引将根据字符集和排序规则删除重复项。因此,如果你有一个样本,那么你将有两行‘latin1_swedish_cs’& 'Sample‘,而对于latin1_swedish_ci,你将只有第一行'Sample’。因此,数据库中的所有字符串比较(在WHERE, DISTINCT, GROUP BY中)都将基于您设置的字符集和排序规则。
票数 2
EN

Stack Overflow用户

发布于 2012-08-13 22:41:17

对于Sybase ASE,您可能希望切换到nocase排序顺序。

代码语言:javascript
复制
   sp_helpsort  

  • 显示有关当前字符集和排序顺序的信息

select id, csid, name, descpription from master..syscharsets where type >= 2000

  • This将显示可用排序顺序的列表

sp_configure 'default sort order', *sortorder_id*

  • Is更改排序顺序的命令。对于ISO_1(ISO-8859-1)字符集,该值为'52‘。此设置是静态的,因此必须重新启动数据库才能使其生效。

重启后,运行sp_indsuspect检查索引,运行sp_tab_suspectptn检查分区表。完成此操作后,您可以通过再次运行sp_helpsort来检查您的更改。

在处理字符集/排序顺序时,务必同时拥有数据库转储和数据的BCP副本,这一点很重要。

票数 1
EN

Stack Overflow用户

发布于 2012-08-10 15:26:21

如果要在sqlserver中选择区分大小写的搜索..尝尝这个

代码语言:javascript
复制
SELECT User_Id FROM Table 
WHERE User_Id=@userid AND Password=@pwd COLLATE SQL_Latin1_General_CP1_CS_AS

这里的@userid和@pwd是从user发送到存储过程的参数。

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

https://stackoverflow.com/questions/11897033

复制
相关文章

相似问题

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