在MySQL中,Varchar似乎以某种方式转换为整数

时间:2017-01-09 11:41:49

标签: mysql mysql-cluster

我有以下列定义:

col varchar(8) not null

它仅包含hw值:

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;返回空集。

0 个答案:

没有答案