mysql查詢對大小寫不敏感的問題

2021-07-24 02:09:12 字數 2408 閱讀 8481

**之前專案到遇到了這樣的問題來總結一下**
專案中經常用到模糊查詢,如:有個username欄位的的內容是:aa812135023,我們查詢這條記錄,查詢的sql select * from 表 where username 

like '%aa%',能找到這條記錄,但是用 select * from 表 where username like '%aa%' 也能查詢到這條記錄.

問題出在**?出現在建立資料表上,應該用下面的code建立表

create

table

`message` (

`msgid` bigint(20) not

null

comment '訊息id',

`biztype`

int(11) not

null

comment '訊息業務型別 參見列舉biztype',

`bizid`

int(11) not

null

comment '訊息對應的業務id',

`src` bigint(20) not

null

comment '傳送者id',

`dst` bigint(20) not

null

comment '接受者id',

`msgstatus`

int(11) not

null

comment '訊息狀態 參見列舉msgstatus',

`status`

int(11) default

'0' `createby`

int(11) default

'0',

`createtime` datetime default

null,

`updateby`

int(11) default

'0',

`updatetime` datetime default

null,

`lastupdate`

timestamp

notnull

default

current_timestamp

onupdate

current_timestamp,

primary

key (`msgid`)

) engine = innodb //使用的搜尋引擎,有以下幾種引擎:isam、myisam、heap、innodb和berkley(bdb)

default charset = utf8 //編碼格式,有時候資料庫亂碼就出現在這裡.

default

collate = utf8_bin;//查詢對大小寫敏感

那不是每個表都需要下面這段東西,這樣顯的比較繁瑣,

engine = innodb //使用的搜尋引擎,有以下幾種引擎:isam、myisam、heap、innodb和berkley(bdb)

default charset = utf8 //編碼格式,有時候資料庫亂碼就出現在這裡.

default collate = utf8_bin;//查詢對大小寫敏感

我們建立資料庫的時候,用下面的code就不用每個表都寫上面這一段了

create

database test default

character

set utf8 collate utf8_bin;

如果你的資料已經建好了,修改即可

alter

schema

`bbj_local`

default

character

set utf8 default

collate utf8_bin ;

如何修改mysql預設的搜尋引擎?

1、檢視mysql儲存引擎命令,在mysql>提示符下搞入show engines;字段 support為:default表示預設儲存引擎  

2、設定innodb為預設引擎:在配置檔案my.cnf中的 [mysqld] 下面加入default-storage-engine=innodb 一句

3、重啟mysql伺服器:mysqladmin -u root -p shutdown或者service mysqld restart 登入mysql資料庫,

oracle設定字母大小寫不敏感對impdp無效

又雙叒叕遇到了喜聞樂見的字母大小寫bug 最近在新建專案的資料庫時候又遇到了字母大小寫的問題,首先新建oracle例項 opf2monitor 接著新建了表空間 pyac 然後新建了使用者 monitor kp123456 並賦予各種許可權,最後使用impdp命令 impdp monitor kp1...

mysql主鍵大小寫不敏感的解決辦法

如果你在mysql有唯一約束的列上插入兩行值 a 和 a mysql會認為它是相同的,而在oracle中就不會。就是mysql預設的字段值不區分大小寫?這點是比較令人頭痛的事。請看下面的測試 mysql create table test4 nick varchar 20 primary key q...

MySQL大小寫敏感

mysql大小寫敏感的解決方案 注 關於lower case table names引數對錶名稱或資料庫名稱大小寫敏感的控制。unix下預設為0,也就是大小寫敏感的 windows下預設為1,不敏感 macos預設為2,儲存區分大小寫,但是在查詢時會轉換為小寫。對於在大小寫不敏感的系統 window...