SQL 取varchar型別欄位中純數字行

2022-09-08 09:06:14 字數 700 閱讀 4519

有這樣乙個需求:需要把乙個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欄位預設值是...