liz*_*dhr 2 mysql sql ascii utf-8 utf8mb4
我有这样的疑问:
SELECT count(*) from TABLE WHERE LENGTH(COLUMN) !=CHAR_LENGTH(COLUMN);
Run Code Online (Sandbox Code Playgroud)
如果 count 返回一个大于零的值,它告诉我在某些行中有非 ASCII 字符。
我如何知道表中是否有 utf8mb4 字符?
有没有办法查询所有utf8mb4字符?
这取决于“utf8mb4 字符”的含义。这句话完全是由“utf8mb4字符”组成的。这句话完全是由“ascii”字符组成的。
假设您的意思是“非 ASCII”并且列是CHARACTER SET utf8mb4,那么您的查询应该可以正常工作。
此技术适用于任何多字节字符集,例如 utf8、big5 等。它不适用于单字节字符集,例如 latin1、latin5 等。
如果您想从列中提取非 ASCII 字节,最好使用某些应用程序语言来完成。它可能有一个简单的方法来做到这一点,或者您可以获取十六进制并使用正则表达式查找一对十六进制[CDEF].
如果您的意思是“utf8mb4”而不是“utf8”,那么十六进制将是F. 并且可以通过以下方式发现该行
HEX(col) RLIKE "^(..)*F."
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2043 次 |
| 最近记录: |