SQL判斷某列中是否包含中文字元、英文字元、純數字
- 2019 年 10 月 4 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/xc_zhou/article/details/100669914
一、包含中文字元
select * from 表名 where 列名 like '%[吖-座]%'
[吖-座]是中文字符集第一個到最後一個的範圍,雖然匹配準確,但是用Like的效率很低
在使用mysql時候,某些欄位會存儲中文字元,或是包含中文字元的串,查詢出來的方法是:
SELECT column FROM table WHERE length(column)!=char_length(column)
原理其實很簡單,當字符集為UTF-8,並且字元為中文時,length() 和 char_length() 兩個方法返回的結果是不相同的。
二、包含英文字元
select * from 表名 where 列名 like '%[a-z]%' or like '%[A-Z]%'
三、包含純數字
select * from 表名 where 列名 like '%[0-9]%'