【发布时间】:2021-06-10 20:18:33
【问题描述】:
我正在使用下面的 mysql 查询来检查哪些记录与修剪后的值不同
SELECT id, BINARY(username) as binary_username, TRIM(username) as trim_username FROM table.
上面的查询返回二进制值和修剪后的值,如下所示。
mysql查询结果:
上图中突出显示的值表示二进制值与修剪后的值不同。
我尝试了以下两件事:
-
计算二进制和修剪列的长度,但它是相同的
LENGTH(binary_username) != LENGTH(trim_username)。 -
直接将它们等同于
binary_username != trim_username。
但它们都返回空记录。
如何使用 mysql 获取这些突出显示的条目?
编辑 1:我在查询结果中添加了 HEX 值
SELECT id, BINARY(username) as binary_username, TRIM(username) as trim_username, HEX(username) as hex_username FROM table
提前谢谢...
【问题讨论】:
-
显示
hex(username)可能会有所帮助。 -
不,那没用
-
“它没有用”是什么意思?
hex(trim(username))对于 196447 的输出是546F617374那么? -
试试
where username != trim(username)。我怀疑你的用户名末尾有奇怪的空格 -
只需获取 HEX(用户名);我怀疑它是双重编码的!
标签: php mysql regex binary trim