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參數來設置查詢區分大小寫  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 西丰县| 富源县| 宜兰市| 高州市| 宁津县| 芦山县| 昆明市| 柏乡县| 惠东县| 达日县| 芜湖市| 东乡县| 舞阳县| 贺州市| 景东| 察隅县| 大厂| 秦安县| 佛冈县| 道孚县| 江口县| 红安县| 浦城县| 江华| 德昌县| 赣榆县| 定日县| 丹寨县| 都安| 诏安县| 白河县| 拜泉县| 类乌齐县| 苏尼特右旗| 郸城县| 隆子县| 辛集市| 龙海市| 全椒县| 塔河县| 盐城市|