代码之家  ›  专栏  ›  技术社区  ›  PaiS

将Mysql表列更改为区分大小写

  •  24
  • PaiS  · 技术社区  · 15 年前

    在google上,我发现Mysql列对于搜索操作是不区分大小写的(与Oracle相反),在创建表时可以通过指定“binary”ie来更改默认行为。

    CREATE TABLE USERS
    (
        USER_ID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
        USER_NAME VARCHAR(50) BINARY NOT NULL
    )
    

    有人能告诉我如何修改Mysql中的表,将“Binary”添加到DB的现有列中吗?

    谢谢!

    4 回复  |  直到 15 年前
        1
  •  35
  •   deinst    15 年前
    ALTER TABLE USERS CHANGE USER_NAME USER_NAME VARCHAR(50) BINARY NOT NULL;
    
        2
  •  8
  •   defines    15 年前

    请看 http://dev.mysql.com/doc/refman/5.0/en/charset-conversion.html

    例子:

    ALTER TABLE some_table MODIFY some_column BLOB;
    ALTER TABLE some_table MODIFY some_column VARCHAR(50) BINARY;
    

    第一行转换为二进制数据类型(尽量减少字符丢失),第二行转换回 VARCHAR 键入 BINARY 整理。

    实际上,最好存储为二进制类型之一( BLOB 二元的 ,或 VARBINARY 二元的

        3
  •  5
  •   Robert Christopher Mehmet Fide    5 年前

    你应该可以这样做:

    编辑:误读你的意图:

        ALTER TABLE USERS MODIFY
            USER_NAME VARCHAR(50)
              CHARACTER SET binary;
    
        4
  •  -1
  •   SimonDowdles    15 年前

    在进行身份验证时,您仍然可以对表执行区分大小写的查询,而不是更改表,请按如下所示使用二进制选项:

    SELECT BINARY * FROM USERS where USER_ID = 2 AND USER_NAME = 'someone' LIMIT 1;