有這樣乙個需求:需要把乙個varchar 型別欄位中所有純數字的行取出來.那麼這個select語句要怎麼寫呢?首先想到的是isnumeric
()這個sql函式.sql語句如下:
select
*from view_user where
isnumeric
(logid)=1
但是發現這樣的執行結果並不對.因為太長的資料就超出了isnumeric
()的判斷範圍,也就是說有部分超出函式運算範圍的的行,沒有select 進去
然後想到用logid not like '%[^0-9]%'去過濾,意思就是所有不包含0
-9數字的都排除掉,然後再返回,語句如下:
select
*from view_user where logid not like '%[^0-9]%'
這下執行結果就全面多了,但是包含進去一些全形數字和全半形混寫的數字.但這個結果已經是我們想要的了,如果不想要全形數字.可以再從結果集中去除.語句如下:
select
*from
(select
*from view_user where logid not like '%[^0-9]%'
)as b where
isnumeric
(b.logid)=1
哈哈~~這個才完美.
mysql 查詢varchar型別字段排序
首先,如果裡面存的是字母,會按 英文本母 順序排序,如果含有數字,按數字大小排序,如果含有漢字,按照所選擇的 漢字編碼 排序。一般情況下,int型別的字段可以直接使用max 函式查詢出某一列的最大值,但是對於varchar型的字段,我們有的時候需要排序或查最大值,直接用max 函式查最大值,會發現值...
字段型別char 和 varchar 的區別
char 10 定長 占用儲存空間 使用空格填充剩餘空位,查詢時需要去掉空格。如果是mysql資料庫,校對規則屬於padspace類,校對是自動去掉尾部空格。varchar 10 不定長 節省儲存空間,但占用記憶體。一般初學會認為,二者占用的空間是一樣的。比如說我儲存5個char,二者都是實際占用了...
MySQL 修改字段型別 varchar轉json
如果執行如下語句出錯 alter tablemysql.t userchangeother dataother datajson default null comment 額外資料 步驟1 檢查other data欄位是否有非json字串的資料,如 空串 步驟2 檢查other data欄位預設值是...