我有以下列定义:
col varchar(8) not null
它仅包含h
和w
值:
col
h
h
w
w
w
h
问题在于执行以下查询:
SELECT * FROM t WHERE t.col = 0 limit 100;
给我一些结果,但它不应该。它是整数,而不是varchar。发生了什么?此外,如果我将0
作为整数插入此列,会发生什么?
编辑:
它是NDB群集表。全表定义:
CREATE TABLE `graph` (
`id` bigint(20) unsigned NOT NULL,
`neighbor` bigint(20) unsigned NOT NULL,
`type` varchar(8) NOT NULL,
PRIMARY KEY (`id`,`neighbor`,`type`)
) ENGINE=ndbcluster DEFAULT CHARSET=utf8;
示例数据:
id | neighbor | type
1 1 h
2 1 h
3 2 w
示例SQL:
select * from graph g where g.type = 0;
示例输出:
id | neighbor | type
1 1 h
2 1 h
3 2 w
虽然select * from graph g where g.type = 1;
返回空集。