如何实现比较字符串时,区分大小写呢?
我的用户名的密码,都是区分大小写的。
即写入数据库时,是区分大小写的。比较时也区分大小写。
比如用户 aa 与 AA 认为是不同的两个用户,如何实现呢?一般情况下,如果某列设了主键,则aa写入后,就不行增加AA的记录了。因为默认不区分大小写,如何实现存入时,大小写不同就认为是不同的字符呢?

解决方案 »

  1.   

    参照
    http://blog.csdn.net/roy_88/archive/2007/01/07/1476074.aspx
      

  2.   

    直接设置字段的排序规则
    collate Chinese_PRC_CS_AS 
      

  3.   

    看个例子
    select * from t1
    /*
    电线顺序 左端子  右端子  
    ---- ---- ---- 
    S1   A    B
    S2   A    C
    S3   D    B
    S4   D    C
    S5   C    B
    S6   A    B
    S7   A    C
    S8   D    C
    S9   C    B(所影响的行数为 9 行)*/select * from t1 where 左端子 COLLATE Chinese_PRC_CI_AS ='a' --CI不区分大小写
    /*
    电线顺序 左端子  右端子  
    ---- ---- ---- 
    S1   A    B
    S2   A    C
    S6   A    B
    S7   A    C(所影响的行数为 4 行)*/select * from t1 where 左端子 COLLATE Chinese_PRC_CS_AS ='a'--CS区分大小写/*
    电线顺序 左端子  右端子  
    ---- ---- ---- (所影响的行数为 0 行)
    */
      

  4.   

    看联机丛书SQL 排序规则名称
    为 SQL 排序规则指定排序规则名称的单个字符串。语法
    < SQL_collation_name > :: =     SQL_SortRules[_Pref]_CPCodepage_<ComparisonStyle>    <ComparisonStyle> ::=
            _CaseSensitivity_AccentSensitivity | _BIN参数
    SortRules标识字母表或语言的字符串,当指定按字典排序时应用该字母表或语言的排序规则。例如 Latin1_General 或波兰语。Pref指定大写字母优先。Codepage指定标识排序规则所使用的代码页的 1 至 4 个数字的号码。CP1 指定代码页 1252,对于所有其它代码页指定完整代码页号码。例如,CP1251 指定代码页 1251,CP850 指定代码页 850。CaseSensitivityCI 指定不区分大小写,CS 指定区分大小写。AccentSensitivityAI 指定不区分重音,AS 指定区分重音。BIN指定使用二进制排序次序。注释
    下表列出了 SQL 排序规则名称。排序次序 ID SQL 排序规则名称 
    30 SQL_Latin1_General_Cp437_BIN 
    31 SQL_Latin1_General_Cp437_CS_AS 
    32 SQL_Latin1_General_Cp437_CI_AS 
    33 SQL_Latin1_General_Pref_CP437_CI_AS 
    34 SQL_Latin1_General_Cp437_CI_AI 
    40 SQL_Latin1_General_Cp850_BIN 
    41 SQL_Latin1_General_Cp850_CS_AS 
    42 SQL_Latin1_General_Cp850_CI_AS 
    43 SQL_Latin1_General_Pref_CP850_CI_AS 
    44 SQL_Latin1_General_Cp850_CI_AI 
    49 SQL_1Xcompat_CP850_CI_AS 
    50 Latin1_General_BIN 
    51 SQL_Latin1_General_Cp1_CS_AS 
    52 SQL_Latin1_General_Cp1_CI_AS 
    53 SQL_Latin1_General_Pref_CP1_CI_AS 
    54 SQL_Latin1_General_Cp1_CI_AI 
    55 SQL_AltDiction_Cp850_CS_AS 
    56 SQL_AltDiction_Pref_CP850_CI_AS 
    57 SQL_AltDiction_Cp850_CI_AI 
    58 SQL_Scandinavian_Pref_Cp850_CI_AS 
    59 SQL_Scandinavian_Cp850_CS_AS 
    60 SQL_Scandinavian_Cp850_CI_AS 
    61 SQL_AltDiction_Cp850_CI_AS 
    71  Latin1_General_CS_AS 
    72  Latin1_General_CI_AS 
    73 Danish_Norwegian_CS_AS 
    74 Finnish_Swedish_CS_AS 
    75 Icelandic_CS_AS 
    80 Hungarian_BIN(或 Albanian_BIN、Czech_BIN 等等)1 
    81 SQL_Latin1_General_Cp1250_CS_AS 
    82 SQL_Latin1_General_Cp1250_CI_AS 
    83 SQL_Czech_Cp1250_CS_AS 
    84 SQL_Czech_Cp1250_CI_AS 
    85 SQL_Hungarian_Cp1250_CS_AS 
    86 SQL_Hungarian_Cp1250_CI_AS 
    87 SQL_Polish_Cp1250_CS_AS 
    88 SQL_Polish_Cp1250_CI_AS 
    89 SQL_Romanian_Cp1250_CS_AS 
    90 SQL_Romanian_Cp1250_CI_AS 
    91 SQL_Croatian_Cp1250_CS_AS 
    92 SQL_Croatian_Cp1250_CI_AS 
    93 SQL_Slovak_Cp1250_CS_AS 
    94 SQL_Slovak_Cp1250_CI_AS 
    95 SQL_Slovenian_Cp1250_CS_AS 
    96 SQL_Slovenian_Cp1250_CI_AS 
    104 Cyrillic_General_BIN(或 Ukrainian_BIN、Macedonian_BIN) 
    105 SQL_Latin1_General_Cp1251_CS_AS 
    106 SQL_Latin1_General_Cp1251_CI_AS 
    107 SQL_Ukrainian_Cp1251_CS_AS 
    108 SQL_Ukrainian_Cp1251_CI_AS 
    112 Greek_BIN 
    113 SQL_Latin1_General_Cp1253_CS_AS 
    114 SQL_Latin1_General_Cp1253_CI_AS 
    120 SQL_MixDiction_Cp1253_CS_AS 
    121 SQL_AltDiction_Cp1253_CS_AS 
    124 SQL_Latin1_General_Cp1253_CI_AI 
    128 Turkish_BIN 
    129 SQL_Latin1_General_Cp1254_CS_AS 
    130 SQL_Latin1_General_Cp1254_CI_AS 
    136 Hebrew_BIN 
    137 SQL_Latin1_General_Cp1255_CS_AS 
    138 SQL_Latin1_General_Cp1255_CI_AS 
    144 Arabic_BIN 
    145 SQL_Latin1_General_Cp1256_CS_AS 
    146 SQL_Latin1_General_Cp1256_CI_AS 
    153 SQL_Latin1_General_Cp1257_CS_AS 
    154 SQL_Latin1_General_Cp1257_CI_AS 
    155 SQL_Estonian_Cp1257_CS_AS 
    156 SQL_Estonian_Cp1257_CI_AS 
    157 SQL_Latvian_Cp1257_CS_AS 
    158 SQL_Latvian_Cp1257_CI_AS 
    159 SQL_Lithuanian_Cp1257_CS_AS 
    160 SQL_Lithuanian_Cp1257_CI_AS 
    183 SQL_Danish_Pref_Cp1_CI_AS 
    184 SQL_SwedishPhone_Pref_Cp1_CI_AS 
    185 SQL_SwedishStd_Pref_Cp1_CI_AS 
    186 SQL_Icelandic_Pref_Cp1_CI_AS 
    192 Japanese_BIN 
    193 Japanese_CI_AS 
    194 Korean_Wansung_BIN 
    195 Korean_Wansung_CI_AS 
    196 Chinese_Taiwan_Stroke_BIN 
    197 Chinese_Taiwan_Stroke_CI_AS 
    198  Chinese_PRC_BIN 
    199 Chinese_PRC_CI_AS 
    200 Japanese_CS_AS 
    201 Korean_Wansung_CS_AS 
    202 Chinese_Taiwan_Stroke_CS_AS 
    203 Chinese_PRC_CS_AS 
    204 Thai_BIN 
    205 Thai_CI_AS 
    206 Thai_CS_AS 
    210 SQL_EBCDIC037_CP1_CS_AS 
    211 SQL_EBCDIC273_CP1_CS_AS 
    212 SQL_EBCDIC277_CP1_CS_AS 
    213 SQL_EBCDIC278_CP1_CS_AS 
    214 SQL_EBCDIC280_CP1_CS_AS 
    215 SQL_EBCDIC284_CP1_CS_AS 
    216 SQL_EBCDIC285_CP1_CS_AS 
    217 SQL_EBCDIC297_CP1_CS_AS 1只要代码页指定为 1250,而且按二进制排序,对排序次序 ID 80 可以使用任何 Window 排序规则。例如:Albanian_BIN、Croatian_BIN、Czech_BIN、Romanian_BIN、Slovak_BIN、Slovenian_BIN。
      

  5.   

    这是数据库的这是某个文本字段的
    Chinese_PRC_CI_AS 为大小写不敏感
    Chinese_PRC_CS_AS 为大小写敏感
      

  6.   

    前端也要实现,但是关键是后台呀,因为不改排序规则,是存不进去的。
    比如存入了 aa,也存AA会提示主键冲突呀。所以只有修改排序规则,才能实现
    存入aa后,还能存入AA