一般mysql命令行中加;號(hào)代表一行命令的結(jié)束
成都創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元湖里做網(wǎng)站,已為上家服務(wù),為湖里各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
\c 可以退出當(dāng)前行命令,
\q或者exit退出mysql命令行
1、exit
2、help可以學(xué)到更多命令
3、有些命令行按CTRL+d也可以退出
這位網(wǎng)友對(duì) MySQL 官方手冊(cè)里的 hex 和 unhex 函數(shù)有些疑問: 自己實(shí)驗(yàn)結(jié)果和手冊(cè)中給的結(jié)果有些差異。
手冊(cè)上是這樣寫的:
完后自己實(shí)驗(yàn)結(jié)果反而這樣:
第一條語句里 X'616263' 和*UNHEX(HEX('abc'))*的執(zhí)行結(jié)果和手冊(cè)不一致,第二條語句執(zhí)行結(jié)果和手冊(cè)完全一致。
我自己虛擬機(jī)上的實(shí)驗(yàn):結(jié)果也不正確。
我猜想:函數(shù)的執(zhí)行結(jié)果肯定是對(duì)的(大廠不可能犯這樣的低級(jí)錯(cuò)誤,有錯(cuò)也是我自身的問題),但是此處進(jìn)制沒做正常轉(zhuǎn)換,一定是客戶端在結(jié)果轉(zhuǎn)碼上有哪些地方默認(rèn)有變。為此查詢 MySQL 命令行的 status 結(jié)果:
上面包含一行: Binary data as: Hexadecimal 這一行意思是說 MySQL 命令行把二進(jìn)制字符打印為十六進(jìn)制字符。
到這里應(yīng)該判斷下這兩個(gè)十六進(jìn)制字符的編碼:結(jié)果都為 binary 。
既然編碼為 binary ,直接用 convert 函數(shù)轉(zhuǎn)碼即可:轉(zhuǎn)碼后的結(jié)果正確。
到這里,問題是解釋通了,不過能不能每次不進(jìn)行轉(zhuǎn)碼而直接查呢? 當(dāng)然可以。MySQL 命令行客戶端有個(gè)選項(xiàng)( --binary-as-hex )用來控制是否打印二進(jìn)制數(shù)據(jù)為十六進(jìn)制,MySQL 命令行默認(rèn)開啟。
只需關(guān)閉這個(gè)選項(xiàng)即可, 寫入配置文件(my.cnf里[mysql]段下)或者是命令行帶入都可以:結(jié)果正確。
還有一個(gè)通用選項(xiàng): --skip-binary-as-hex , 帶上后效果一樣。
需要注意的是:這個(gè)選項(xiàng)也同時(shí)影響字段類型為 BLOB ,BINARY 等的表數(shù)據(jù)輸出。
1.沒辦法的辦法,ctrl+c,完全退出
2.可以輸入\c 廢棄本次語句,若輸入后沒效果是因?yàn)槲幢3之?dāng)前輸入語句完整匹配
如:
mysql show tables';
'
' \c
' '\c
mysql