【发布时间】:2016-03-08 20:13:51
【问题描述】:
我在 mysql 表中有一个类型为 binary(16) not null 的列。并非所有记录在此列中都有数据,而是因为它设置为不允许 NULL 此类记录具有全零值。
我想从查询中排除这些全零记录。
到目前为止,我能找到的唯一解决方案是HEX 的值并进行比较:
SELECT uuid
FROM example
WHERE HEX(uuid) != '00000000000000000000000000000000'
哪个有效,但有更好的方法吗?
【问题讨论】:
-
你试过
select uuid from example where uuid is not null吗? -
这些列从未设置为允许 NULL。
-
当您查看数据库时,您看到这些记录的列中是空白还是空?
-
@RahulSharma 根据文档
binary列总是用\0填充。因此插入一个空字符串''会得到N 次\0。我认为这就是问题所在。不过很好的谜语。让我们等戈登... ;-)
标签: mysql comparison binary-data