一、問題說明
為了簡便在儲存時我們經常將整型欄位也以字串形式儲存(如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等的記錄也將會返回。
參考:
MySQL 大於小於比較問題
drop table ifexists access log create table access log aid int 11 not null auto increment,site id int 11 not null default 0 comment id count int 11 no...
mysql總分大於250的同學 mysql 筆記
mysql 的安裝 mysql 的安裝比較簡單,但是在 detail configuration 有些注意的地方.mysql 的管理員 root 埠3306 oracle 的管理員 sys 和 system 埠 1521 sql server 的管理員是 sa 埠 1433 建立mysql 資料庫 ...
mysql設定約束大於0 MySQL約束
mysql中約束儲存在information schema資料庫的table constraints中,可以通過該錶查詢約束資訊 常用5種約束 not null 非空約束,指定某列不為空 unique 唯一約束,指定某列和幾列組合的資料不能重複 primary key 主鍵約束,指定某列的資料不能重...