我在我的应用程序开发中使用了SQL Server和MySQL RDMS数据库。我刚接触sybase数据库,我发现字符串搜索在默认情况下是区分大小写的,而在SQL Server和MySQL中则不是。
SELECT * FROM TABLE1 WHERE COL1 = 'Sample'
SELECT * FROM TABLE1 WHERE COL1 = 'sample'发布于 2012-08-10 15:18:37
CHARACTER SET和collation。默认字符集为latin1_swedish_ci,其中ci代表不区分大小写。您可以将其更改为latin1_swedish_cs以使其区分大小写。在MySQL和SQL server中,您都可以在列、表、数据库和服务器级别上设置字符集和排序规则。
http://dev.mysql.com/doc/refman/5.5/en/case-sensitivity.html
latin1_swedish_cs’& 'Sample‘,而对于latin1_swedish_ci,你将只有第一行'Sample’。因此,数据库中的所有字符串比较(在WHERE, DISTINCT, GROUP BY中)都将基于您设置的字符集和排序规则。发布于 2012-08-13 22:41:17
对于Sybase ASE,您可能希望切换到nocase排序顺序。
sp_helpsort select id, csid, name, descpription from master..syscharsets where type >= 2000
sp_configure 'default sort order', *sortorder_id*
重启后,运行sp_indsuspect检查索引,运行sp_tab_suspectptn检查分区表。完成此操作后,您可以通过再次运行sp_helpsort来检查您的更改。
在处理字符集/排序顺序时,务必同时拥有数据库转储和数据的BCP副本,这一点很重要。
发布于 2012-08-10 15:26:21
如果要在sqlserver中选择区分大小写的搜索..尝尝这个
SELECT User_Id FROM Table
WHERE User_Id=@userid AND Password=@pwd COLLATE SQL_Latin1_General_CP1_CS_AS这里的@userid和@pwd是从user发送到存储过程的参数。
https://stackoverflow.com/questions/11897033
复制相似问题