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]%'