解決方案一:

成都創(chuàng)新互聯(lián)公司2013年至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元甌海做網(wǎng)站,已為上家服務(wù),為甌海各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
于是懷疑Mysql的問(wèn)題。做個(gè)實(shí)驗(yàn):直接使用客戶(hù)端用sql查詢(xún)數(shù)據(jù)庫(kù)。 發(fā)現(xiàn)的確是大小不敏感 。
通過(guò)查詢(xún)資料發(fā)現(xiàn)需要設(shè)置collate(校對(duì)) 。 collate規(guī)則:
*_bin: 表示的是binary case sensitive collation,也就是說(shuō)是區(qū)分大小寫(xiě)的
*_cs: case sensitive collation,區(qū)分大小寫(xiě)
*_ci: case insensitive collation,不區(qū)分大小寫(xiě)
解決方法。
1.可以將查詢(xún)條件用binary()括起來(lái)。 比如:
?
1
select * from TableA where binary columnA ='aaa';
2. 可以修改該字段的collation 為 binary
比如:
?
1
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
解決方案二:
mysql查詢(xún)默認(rèn)是不區(qū)分大小寫(xiě)的 如:
?
1
2
select * from some_table where str=‘a(chǎn)bc';
select * from some_table where str='ABC';
得到的結(jié)果是一樣的,如果我們需要進(jìn)行區(qū)分的話可以按照如下方法來(lái)做:
第一種方法:
要讓mysql查詢(xún)區(qū)分大小寫(xiě),可以:
?
1
2
select * from some_table where binary str='abc'
select * from some_table where binary str='ABC'
第二方法:
在建表時(shí)時(shí)候加以標(biāo)識(shí)
?
1
2
3
create table some_table(
str char(20) binary
1、一種方法是可以設(shè)置表或行的collation,使其為binary或case
sensitive。在MySQL中,對(duì)于Column
Collate其約定的命名方法如下:
*_bin:
表示的是binary
case
sensitive
collation,也就是說(shuō)是區(qū)分大小寫(xiě)的
*_cs:
case
sensitive
collation,區(qū)分大小寫(xiě)
*_ci:
case
insensitive
collation,不區(qū)分大小寫(xiě)
###########
#
Start
binary
collation
example
###########
mysql
create
table
case_bin_test
(word
VARCHAR(10))
CHARACTER
SET
latin1
COLLATE
latin1_bin;
Query
OK,
rows
affected
(0.02
sec)
mysql
INSERT
INTO
case_bin_test
VALUES
('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');
Query
OK,
5
rows
affected
(0.00
sec)
Records:
5
Duplicates:
Warnings:
mysql
SELECT
*
FROM
case_bin_test
WHERE
word
LIKE
'f%';
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_bin_test
WHERE
word
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.00
sec)
###########
#
End
###########
2、另外一種方法
###########
#
Start
case
sensitive
collation
example
###########
mysql
create
table
case_cs_test
(word
VARCHAR(10))
CHARACTER
SET
latin1
COLLATE
latin1_general_cs;
Query
OK,
rows
affected
(0.08
sec)
mysql
INSERT
INTO
case_cs_test
VALUES
('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');
Query
OK,
5
rows
affected
(0.00
sec)
Records:
5
Duplicates:
Warnings:
mysql
SELECT
*
FROM
case_cs_test
WHERE
word
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_cs_test
WHERE
word
LIKE
'f%';
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
###########
#
end
###########
3、還有一種方法就是在查詢(xún)時(shí)指定collation
mysql
create
table
case_test
(word
VARCHAR(10))
CHARACTER
SET
latin1;
Query
OK,
rows
affected
(0.01
sec)
mysql
INSERT
INTO
case_test
VALUES
('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');
Query
OK,
7
rows
affected
(0.01
sec)
Records:
7
Duplicates:
Warnings:
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'f%';
+---------+
|
word
|
+---------+
|
Frank
|
|
froogle
|
|
flickr
|
|
FlicKr
|
+---------+
6
rows
in
set
(0.01
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
froogle
|
|
flickr
|
|
FlicKr
|
+---------+
6
rows
in
set
(0.01
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
COLLATE
latin1_bin
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.05
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
COLLATE
latin1_bin
LIKE
'f%';
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'f%'
COLLATE
latin1_bin;
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'F%'
COLLATE
latin1_bin;
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.01
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'F%'
COLLATE
latin1_general_cs;
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.04
sec)
1、linux下mysql安裝完后是默認(rèn):區(qū)分表名的大小寫(xiě),不區(qū)分列名的大小寫(xiě);
2、用root帳號(hào)登錄后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重啟MYSQL服務(wù),這時(shí)已設(shè)置成功:不區(qū)分表名的大小寫(xiě);
lower_case_table_names參數(shù)詳解:
lower_case_table_names = 0
其中 0:區(qū)分大小寫(xiě),1:不區(qū)分大小寫(xiě)
如何查看mysql數(shù)據(jù)表是否區(qū)分大小寫(xiě)看
答:mysql是否區(qū)分大小寫(xiě),可以使用show Variables like '%table_names'查看lower_case_table_names的值,0代表區(qū)分,1代表不區(qū)分。
如何讓mysql數(shù)據(jù)表內(nèi)的varchar字段區(qū)分大小寫(xiě)看
mysql對(duì)于類(lèi)型為varchar數(shù)據(jù)默認(rèn)不區(qū)分大小寫(xiě),但如果該字段以逗*_bin地編碼的話會(huì)使mysql對(duì)其區(qū)分大小寫(xiě)。
Mysql的字段大小寫(xiě)默認(rèn)策略是什么看
mysql對(duì)于字段名的策略與varchar類(lèi)型數(shù)據(jù)相同。即:默認(rèn)不區(qū)分大小寫(xiě),但如果該字段是以逗*_bin地編碼的話會(huì)使mysql對(duì)其區(qū)分大小寫(xiě)。
Mysql的數(shù)據(jù)表區(qū)分大小寫(xiě)的默認(rèn)策略是什么看
mysql對(duì)于表名的策略與varchar類(lèi)型數(shù)據(jù)相同。即:默認(rèn)不區(qū)分大小寫(xiě),但如果該表是以逗*_bin地編碼的話會(huì)使mysql對(duì)其區(qū)分大小寫(xiě)。
如何修改mysql(mysql.conf)配置來(lái)更改大小寫(xiě)默認(rèn)值看
如果按照第一項(xiàng)查看lower_case_table_names的值為0,但需要讓mysql默認(rèn)不區(qū)分大小寫(xiě)的話,需要在mysql配置文件中添加參數(shù)并重啟mysql數(shù)據(jù)庫(kù)。mysql配置文件的修改內(nèi)容如下:
[mysqld]
...
lower_case_table_names = 1
注意:表和字段的編碼盡量繼承數(shù)據(jù)庫(kù)的編碼(不明顯指定即繼承),以免引起混亂。
LINUX下的MYSQL默認(rèn)是要區(qū)分表名大小寫(xiě)的 ,而在windows下表名不區(qū)分大小寫(xiě)
讓MYSQL不區(qū)分表名大小寫(xiě)的方法其實(shí)很簡(jiǎn)單:
1.用ROOT登錄,修改/etc/my.cnf
2.在[mysqld]下加入一行:lower_case_table_names=1
3.重新啟動(dòng)數(shù)據(jù)庫(kù)即可
網(wǎng)站欄目:mysql怎么看大寫(xiě),MySQL區(qū)分大小寫(xiě)嗎
網(wǎng)站URL:http://chinadenli.net/article38/heddpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、靜態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)