mysql 數(shù)據(jù)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)
一、問(wèn)題
有一張如下圖所示的表,需要我們查出 result 值大于 reference_high值的數(shù)據(jù)
然后我們寫(xiě)了下面的SQL查詢(xún)語(yǔ)句
SELECT i.result,i.reference_high FROM report_item i LEFT JOIN report r ON r.id=i.report_id WHERE r.org_id=54 AND r.report_status=1 AND r.add_date BETWEEN '2020-12-01' AND '2020-12-28' AND i.reference_high<>'' AND i.result<>'' AND i.result > i.reference_high ;
然后執(zhí)行查看結(jié)果
查詢(xún)結(jié)果并不如我們預(yù)期的那樣,存在大量的數(shù)據(jù)不滿(mǎn)足 i.result > i.reference_high 的查詢(xún)條件
二、定位
查看建表SQL語(yǔ)句,我們發(fā)現(xiàn) result 和 reference_high 是varchar類(lèi)型,并不是數(shù)值類(lèi)型,所以出現(xiàn)了查詢(xún)結(jié)果與預(yù)期不符的情況
三、解決
方式一:修改表字段數(shù)據(jù)類(lèi)型為數(shù)值型
但是考慮業(yè)務(wù)使用場(chǎng)景,兩個(gè)字段都是有可能會(huì)出現(xiàn)非數(shù)值類(lèi)型的輸入,所以不可行
方式二:修改查詢(xún)語(yǔ)句,將數(shù)據(jù)類(lèi)型轉(zhuǎn)換為數(shù)值型
以 以上數(shù)據(jù)示例
1、隱式轉(zhuǎn)換:將需要比較的字符串加0之后再比較,數(shù)據(jù)被成功過(guò)濾
2、顯示轉(zhuǎn)換
(1)使用convert函數(shù):將字符串轉(zhuǎn)換為浮點(diǎn)數(shù),再進(jìn)行比較,數(shù)據(jù)被成功過(guò)濾
(2)使用cast函數(shù):與convert函數(shù)幾乎一樣
到此這篇關(guān)于mysql 數(shù)據(jù)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)mysql 數(shù)據(jù)類(lèi)型轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL日期數(shù)據(jù)類(lèi)型、時(shí)間類(lèi)型使用總結(jié)
- MySQL數(shù)據(jù)類(lèi)型和常用字段屬性總結(jié)
- MySQL 數(shù)據(jù)類(lèi)型 詳解
- MySQL 數(shù)據(jù)類(lèi)型 大全
- Mysql支持的數(shù)據(jù)類(lèi)型(列類(lèi)型總結(jié))
- 深入了解mysql的4種常用、重要的數(shù)據(jù)類(lèi)型
- MySQL中數(shù)據(jù)類(lèi)型的驗(yàn)證
- MySQL常見(jiàn)數(shù)據(jù)類(lèi)型知識(shí)點(diǎn)舉例詳解
相關(guān)文章
解決MySql8.0 查看事務(wù)隔離級(jí)別報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決MySql8.0 查看事務(wù)隔離級(jí)別報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10MySQL安裝第四步報(bào)錯(cuò)(initializing?database報(bào)錯(cuò))的圖文解決方法
這篇文章主要給大家介紹了關(guān)于MySQL安裝第四步報(bào)錯(cuò)(initializing?database報(bào)錯(cuò))的解決方法,"initializing?database"?通常出現(xiàn)在安裝MySQL的過(guò)程中,表示MySQL數(shù)據(jù)庫(kù)初始化過(guò)程中遇到了問(wèn)題,需要的朋友可以參考下2024-06-06MySQL創(chuàng)建和刪除表操作命令實(shí)例講解
這篇文章主要介紹了MySQL創(chuàng)建和刪除表操作命令實(shí)例講解,本文講解了創(chuàng)建表、創(chuàng)建臨時(shí)表、查看已經(jīng)創(chuàng)建的mysql表等內(nèi)容,需要的朋友可以參考下2014-12-12mysql處理添加外鍵時(shí)提示error 150 問(wèn)題的解決方法
當(dāng)你試圖在mysql中創(chuàng)建一個(gè)外鍵的時(shí)候,這個(gè)出錯(cuò)會(huì)經(jīng)常發(fā)生,這是非常令人沮喪的2011-11-11MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡(jiǎn)單教程
這篇文章主要介紹了MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡(jiǎn)單教程,主要用到了LOAD DATA語(yǔ)句,需要的朋友可以參考下2015-05-05