1.mysql判斷當(dāng)前數(shù)據(jù)庫是否存在:
SELECT?count(?*?)?FROM?information_schema.TABLES?WHERE?table_name?=?'wx_app_meizu_user_log'?AND?TABLE_SCHEMA?=?'test'
判斷當(dāng)前數(shù)據(jù)表是否存在:?如果存在返回1?失敗為0
2.查看當(dāng)前sql的執(zhí)行效率:
利用explain來進(jìn)行解析和查看
3.查看當(dāng)前的mysql狀態(tài):
show status like '%q_cache%';
4.在select中加條件判斷:
select ref_date,IF(msgid<>'0',COUNT(DISTINCT(msgid)),0) as push_data,sum(target_user) as target_user?? from wx_app_meizu_material_articletotal
GROUP BY ref_date
5.查看事務(wù):
show?engine?innodb?status
6.授權(quán)mysql
grant all privileges on testdb to dba@'localhost'
授權(quán)遠(yuǎn)程連接訪問:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
7.mysql修改生效:
FLUSH PRIVILEGES
8.mysql鏈接的對象返回為空的問題:
場景:
比如有兩個(gè)鏈接虽缕,$db1和$db2通孽,都是操作同一個(gè)指定的ip驮吱,并且:用戶名和密碼一致的情況下宽菜,如:
$db1 = mysql_connect('localhost','user','123456');
$db2 = mysql_connect('localhost','user','123456');
這個(gè)時(shí)候,如果我們需要操作同一個(gè)庫的時(shí)候栓票,選擇了db1和db2以后舞丛,db2的庫會(huì)受到影響构捡,導(dǎo)致查不到出具独郎,原因是由于使用了同樣的配置踩麦,這樣在db1鏈接以后,db2會(huì)鏈接導(dǎo)致一個(gè)鏈接斷開氓癌,需要進(jìn)行特殊的設(shè)置:
$db2 = mysql_connect('localhost','user','123456',true);
注意:
第四個(gè)參數(shù)為new_link=true谓谦,指定相同的配置使用鏈接。
這樣設(shè)置以后db1使用db1的鏈接贪婉,db2使用db2的鏈接反粥,互相不影響。
9.mysql查詢輸出特定字符:
SELECT CONCAT("'",1222,"'") as result
使用MYSQL索引進(jìn)行關(guān)聯(lián)和聯(lián)合查詢的時(shí)候,使用CRC32指定字符串查詢才顿;會(huì)提高查詢效率践剂,對字符串引用有效;
select xxx from fmb_tikcet where name = CRC32("apple");
統(tǒng)計(jì)聯(lián)合查詢的時(shí)候娜膘,巧妙運(yùn)用count(left(**))來進(jìn)行查詢,提高查詢效率;
如:LEFT(city,4)
10.聚合索引搜索:
select * from fmb_riddle_invite_info join (select fuid,uid from fmb_riddle_invite_info ) as t1 on (t1.uid=fmb_riddle_invite_info.uid) where? fmb_riddle_invite_info.uid>0 and fmb_riddle_invite_info.fuid=0 limit 1;
12.DATE_SUB的使用:只要使用針對日期針對未來幾天內(nèi)的一個(gè)統(tǒng)計(jì)的判斷优质; 巧妙運(yùn)用intval 20 day ?|hour 對時(shí)間進(jìn)行判斷竣贪。
11.mysql授權(quán)新用戶:
create user? user1? ?IDENTIFIED by '1234'; 創(chuàng)建新用戶
set password for user1 =password('1234'); 修改密碼
授權(quán)相關(guān)權(quán)限給user1
grant select,update,delete,insert? on DBproxy.* to user1@localhost identified by '1234';
flush privileges; //刷新系統(tǒng)權(quán)限表