Rising Sun

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks
          http://blog.chinaunix.net/u/29134/showart_355336.html



          MYSQL在默認的情況下查詢是不區分大小寫的,例如:

          mysql> create table t1(
              -> name varchar(10));
          Query OK, 0 rows affected (0.09 sec)

          mysql> insert into t1 values('you'),('You'),('YOU');
          Query OK, 3 rows affected (0.05 sec)
          Records: 3  Duplicates: 0  Warnings: 0
          對這個表,缺省情況下,下面兩個查詢的結果是一樣的:


          mysql> select * from t1 where name = 'you';
          +------+
          | name |
          +------+
          | you  |
          | You  |
          | YOU  |
          +------+
          3 rows in set (0.00 sec)

          mysql> select * from t1 where name = 'YOU';
          +------+
          | name |
          +------+
          | you  |
          | You  |
          | YOU  |
          +------+
          3 rows in set (0.00 sec)

          如果想讓MYSQL知道你輸入的字母是大寫還是小寫的,修改表:

          mysql> alter table t1 change name name varchar(10) binary;
          Query OK, 3 rows affected (0.20 sec)
          Records: 3  Duplicates: 0  Warnings: 0


          mysql> select * from t1 where name = 'you';
          +------+
          | name |
          +------+
          | you  |
          +------+
          1 row in set (0.00 sec)

          mysql> select * from t1 where name = 'YOU';
          +------+
          | name |
          +------+
          | YOU  |
          +------+
          1 row in set (0.00 sec)

          如果你只是想在SQL語句中實現的話:

          mysql> select * from t1 where name = binary 'YOU';
          +------+
          | name |
          +------+
          | YOU  |
          +------+
          1 row in set (0.02 sec)

          mysql> select * from t1 where name = binary 'you';
          +------+
          | name |
          +------+
          | you  |
          +------+
          1 row in set (0.00 sec)

          如果不想這么麻煩而想服務一開啟就讓大小寫一致的話:
          可以修改my.ini或者my.cnf
          [mysqld]
           lower_case_table_names=1
          (0:區分;1:不區分)
          然后重啟MYSQL服務。

          mysql> show variables like '%case_table%';
          +------------------------+-------+
          | Variable_name          | Value |
          +------------------------+-------+
          | lower_case_table_names | 1     |
          +------------------------+-------+
          1 row in set (0.00 sec)

          注:WINDOWS系統不用修改,系統默認就是1
          LINUX 系統默認是0。因為LINUX下的腳本都是區分大小寫的。
          posted on 2009-04-17 15:30 brock 閱讀(7361) 評論(1)  編輯  收藏

          評論

          # re: MYSQL在默認的情況下查詢是不區分大小寫的[未登錄] 2013-10-29 17:31 wei
          無法通過配置my.ini或者my.cnf文件中的lower_case_table_names參數來設置查詢區分大小寫  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 满洲里市| 福鼎市| 封丘县| 弥勒县| 萍乡市| 波密县| 新民市| 蓬莱市| 浑源县| 宁海县| 浠水县| 盐亭县| 龙山县| 连平县| 绿春县| 南溪县| 新宁县| 武城县| 蛟河市| 澜沧| 铜川市| 保山市| 德安县| 西乌| 佛山市| 清徐县| 开阳县| 新沂市| 武隆县| 锡林郭勒盟| 大城县| 茌平县| 荣昌县| 泊头市| 临邑县| 博爱县| 邹平县| 安顺市| 犍为县| 宜都市| 佛冈县|