从MySQL中区分全角和半角(mysql全角半角)
字符
MySQL 是当今最流行的关系型数据库,有时我们可能需要从MySQL 数据库中区分全角和半角字符,通过以下几种方式实现:
* 使用 MySQL 的函数 `LENGTH` 和 `CHAR_LENGTH`
`LENGTH` 包含全角字符,`CHAR_LENGTH` 仅包含半角字符,两者的返回值不同。下面是一个例子:
“`sql
SELECT LENGTH(‘A), CHAR_LENGTH(‘A)
“`
这个语句例子中,LENGTH 将会返回2, CHAR_LENGTH 将会返回1。
* 使用 `BINARY` 来区分
我们可以通过把 需要搜索的字符串改写成 `BINARY`,这样就可以看出全角字符和半角字符的差距了:
“`sql
SELECT BINARY ‘A’, BINARY ‘A’;
“`
该语句将会返回A 和 A两个结果,所以get_length 里的每一个字符都被分开,两个半角字符表示 0x41,而一个全角字符则表示 0xef 0xbc 0x41。
* 使用 `UNHEX` 函数
MySQL 有个特有的函数 `UNHEX`,它可以将16进制的字符串转化为真实字符。也可以用在全角和半角字符的识别上:
“`sql
SELECT LENGTH(UNHEX(‘EFBC41’)),CHAR_LENGTH(UNHEX(‘EFBC41’));
“`
执行这个语句将会返回一个数据组,LENGTH 会返回1,而CHAR_LENGTH 会返回3,这就表示原本一个全角字符被分割成了三个半角字符,这样就可以方便的区分全角和半角字符了。
以上三种方式都可以在 MySQL 中成功的区分全角和半角字符,按照具体的需求选择不同的方法实现,可以更好的管理自己的 MySQL 数据库。