您好,登錄后才能下訂單哦!
本篇內容主要講解“MYSQL的varchar與數值舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MYSQL的varchar與數值舉例分析”吧!
好了來說具體場景,被同事叫去看一個奇怪的SQL。SQL語句很簡單,大概就是查詢某些字段有一些查詢條件而已。其中比較重要的一個條件就是 「where xx!=0」。說是很奇怪,為什么!=0就查詢到的結果就是10條。但是!=1 查詢出來的結果就是100條。
SELECT A,B,C FROM TABLE WHERE A!=0
res:10
SELECT A,B,C FROM TABLE WHERE A!=0
res:100
下面我們簡單的來幾條數據看一下狀況。
「所有數據」
「!=0」
當時就是直接拿到了這樣的結果。
當時看到這個問題之后我也很驚奇,不等于0 不應該把所有的數據都拿到么。為什么會出現這樣的情況呢?
簡單考慮了一下,字段的類型為 varchar型,而查詢條件給予的是個數值型,那么問題應該就是出現在這里。
數據庫在基于查詢條件進行檢索的時候會如何進行操作呢?
答案就是轉換成相同的類型。
那么對于這次的問題是字段轉換成int類型還是int轉換成varchar類型呢?其實簡單的看查詢結果就知道了。如果查詢條件‘0’轉換成了varchar那么就應該獲取到全部的數據。但是現在的狀況是獲取到的數據不夠。那結論就是數據庫把要查詢的字段轉換成了數值型。
那么我們把app字段進行轉換一下試試。
從結果上我們可以看到 app 轉換之后的結果只有 0123asfj 轉換成了123,其他都是0。所以在查詢條件為 ‘!=0’ 的時候就只能查詢到一條結果。
到此,相信大家對“MYSQL的varchar與數值舉例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。