MySQL字符串列與整數比較


一、問題說明

為了簡便在存儲時我們經常將整型字段也以字符串形式存儲(如id值),但在篩選比較時就需要將該字段轉為數值類型。

 

二、處理辦法

2.1 使用cast函數進行類型轉換

cast函數格式----cast(column_name as target_value_type),例如現有edb_id字段將其轉為整型:cast(edb_id as SIGNED)

cast函數支持類型---- 二進制(BINARY)、字符型(CHAR())、日期 (DATE)、時間(TIME)、日期時間型(DATETIME)、浮點數(DECIMAL) 、整型(SIGNED)、無符號整數(UNSIGNED)

整句形如----select * from edb_records where cast(edb_id as SIGNED) > 40000;

 

2.2 使用convert函數進行類型轉換

convert和cast功能和用法是一樣的,只是參數格式不一樣。

convert函數格式----convert(column_name, target_value_type),例如現有edb_id字段將其轉為整型:convert(edb_id, SIGNED)

整句形如----select * from edb_records where convert(edb_id, SIGNED) > 40000;

 

三、字符串比較形式說明

整型篩選----select * from edb_records where cast(edb_id as SIGNED) > 40000;----此條語句返回所有edb_id作為數值時大於40000的記錄。

字符型篩選----select * from edb_records where edb_id > '40000';----此條語句返回所有edb_id作為數值時大於40000的記錄外,因為是字符串比較所以edb_id為999等的記錄也將會返回。

 

參考:

http://www.cnblogs.com/xiaoleiel/p/8316508.html

https://www.cnblogs.com/emanlee/p/5998683.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM