- 資訊首頁(yè) > 網(wǎng)絡(luò )安全 >
- MYSQL中怎么截斷長(cháng)字符
這篇文章將為大家詳細講解有關(guān)中怎么截斷長(cháng)字符,文章內容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
MySQL5.0以上版本支持三種sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。
1、ANSI模式:寬松模式,更改語(yǔ)法和行為,使其更符合標準SQL。對插入數據進(jìn)行校驗,如果不符合定義類(lèi)型或長(cháng)度,對數據類(lèi)型調整或截斷保存,報warning警告。對于本文開(kāi)頭中提到的錯誤,可以先把sql_mode設置為ANSI模式,這樣便可以插入數據,而對于除數為0的結果的字段值,數據庫將會(huì )用NULL值代替。
2、TRADITIONAL模式:嚴格模式,當向mysql數據庫插入數據時(shí),進(jìn)行數據的嚴格校驗,保證錯誤數據不能插入,報error錯誤,而不僅僅是警告。用于事物時(shí),會(huì )進(jìn)行事物的回滾。 注釋?zhuān)阂坏┌l(fā)現錯誤立即放棄INSERT/UPDATE。如果你使用非事務(wù)存儲引擎,這種方式不是你想要的,因為出現錯誤前進(jìn)行的數據更改不會(huì )“滾動(dòng)”,結果是更新“只進(jìn)行了一部分”。
3、STRICT_TRANS_TABLES模式:嚴格模式,進(jìn)行數據的嚴格校驗,錯誤數據不能插入,報error錯誤。如果不能將給定的值插入到事務(wù)表中,則放棄該語(yǔ)句。對于非事務(wù)表,如果值出現在單行語(yǔ)句或多行語(yǔ)句的第1行,則放棄該語(yǔ)句。
STRICT_TRANS_TABLES:
在該模式下,如果一個(gè)值不能插入到一個(gè)事務(wù)表中,則中斷當前的操作,對非事務(wù)表不做限制。必須設置,以后各項可能依賴(lài)于該項的設置
NO_ENGINE_SUBSTITUTION:
如果需要的存儲引擎被禁用或未編譯,那么拋出錯誤。不設置此值時(shí),用默認的存儲引擎替代,并拋出一個(gè)異常
ONLY_FULL_GROUP_BY:
對于GROUP BY操作,如果在SELECT中出現的單獨的列,沒(méi)有在GROUP BY子句中出現,那么這個(gè)SQL是不合法的
NO_AUTO_VALUE_ON_ZERO:
該值影響自增長(cháng)列的插入。默認設置下,插入0或NULL代表生成下一個(gè)自增長(cháng)值。如果用戶(hù)希望插入的值為0,而該列又是自增長(cháng)的,那么這個(gè)選項就有用了
NO_ZERO_IN_DATE:
在嚴格模式下,不允許日期和月份為零
NO_ZERO_DATE:
設置該值,mysql數據庫不允許插入零日期,插入零日期會(huì )拋出錯誤而不是警告
ERROR_FOR_DIVISION_BY_ZERO:
在INSERT或UPDATE過(guò)程中,如果數據被零除,則產(chǎn)生錯誤而非警告。如果未給出該模式,那么數據被零除時(shí)MySQL返回NULL
NO_AUTO_CREATE_USER:
禁止GRANT語(yǔ)句創(chuàng )建密碼為空的用戶(hù)
PIPES_AS_CONCAT:
將“||”視為字符串的連接操作符而非或運算符,這和Oracle數據庫是一樣的,也和字符串的拼接函數Concat相類(lèi)似
ANSI_QUOTES:
啟用ANSI_QUOTES后,不能用雙引號來(lái)引用字符串,因為它被解釋為識別符
也可以在命令行查看和設置sql_mode變量
這里username為varchar(5),即最大規定長(cháng)度為5,而輸入的值為‘a(chǎn)dmsddsff’,長(cháng)度為9,超過(guò)規定長(cháng)度,可是并沒(méi)有報錯。通過(guò)查詢(xún)可知被截斷了。那么我們可以利用這個(gè)漏洞,像相關(guān)資料第二張里被紅筆圈的那句話(huà)一樣
加上”STRICT_TRANS_TABLES“或者”TRADITIONAL“后,輸入的數據超過(guò)規定長(cháng)度就會(huì )報錯,不能輸入
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站