mysql查詢欄位中不含中文的資料

2021-09-19 13:30:25 字數 724 閱讀 1621

我查到最多的是where條件後面:

length(`name`) <> character_length(`name`)

或者說length(`name`) != character_length(`name`)

<>是舊式的不等於的寫法,現在一般都使用!= 了 ,所以我們還是使用!=吧。

他的原理就是利用中文的長度和他的字元長度不一致,來查詢的。

一般來說1個中文的length是3,character_length就是1,所以這樣可以搜尋出來中文。

但是問題在於有的俄文 什麼的其他文字也會不等於其字元長度。

這個方案放棄了。

其**現最多的是:

not `name` regexp binary '[\u4e00-\u9fa5]'

然後查詢出來的並不滿意,感覺好像有的中文能過濾  有的又不行。

因為資料庫的字符集是utf8 而這個正則匹配的是unicode碼,可能編碼不一致,導致的問題,也放棄了。

還有就是乙個 `name` regexp binary '[a-za-z0-9]'

就是匹配字母和數字,這麼low的 還是被pass了

最後就是

not `name` regexp binary '[一-龥]'

其實就是那個轉化成中文後的正則匹配。

意思就是如果匹配到任意乙個中文 就算是匹配到,然後取反,就是只要匹配到中文的就不要。

圓滿完成任務。

bye

SQL語句查詢欄位中不含有漢字的條目

sql語句模糊查詢,使用like,其後加上sql裡的萬用字元即可。1 like mc 將搜尋以字母 mc 開頭的所有字串 如 mcbadden 2 like inger 將搜尋以字母 inger 結尾的所有字串 如 ringer stringer 3 like en 將搜尋在任何位置包含字母 en ...

mysql 查詢字段排名 mysql 查詢排名

sql語句查詢排名 思路 有點類似迴圈裡面的自增一樣,設定乙個變數並賦予初始值,迴圈一次自增加1,從而實現排序 mysql裡則是需要先將資料查詢出來並先行按照需要排序的字段做好降序desc,或則公升序asc,設定好排序的變數 初始值為0 a 將已經排序好的資料從第一條依次取出來,取一條就自增加一,實...

mysql查詢字段排序 mysql 排序查詢字段

mysql 排序查詢字段 閱讀 504 排序查詢 語法 select 查詢欄位1 from 表 where 篩選條件 order by 要排序欄位2 asc公升序 desc 降序,要排字段3 asc公升序 desc降序 如果不寫預設為公升序 案例 查詢員工資訊,要求工資從高到低排序 select f...