希望有人能帮我解答一下这个问题的一些疑惑。
我有一个具有此架构的表:
CREATE TABLE IF NOT EXISTS `entities` (
`id` int(6) unsigned NOT NULL,
`external_vendor_id` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
然后我在此表中插入一条记录:
INSERT INTO `entities`
(`id`, `external_vendor_id`)
VALUES
('1', '64835_122334');
当我使用以下语句选择一条记录时,即使子句中的 与通过该语句插入的记录不匹配,也会external_vendor_id
选择该WHERE
记录。external_vendor_id
INSERT
select id, external_vendor_id
from `entities`
where `external_vendor_id` = 64835;
MySQL 5.7.12 上发生这种情况。
问题
- 有谁知道这是否是预期的结果?(如果是这样为什么?)
- 或者这是这个 MySQL 版本的一个错误?
任何帮助都感激不尽。修改查询以避免出现此结果将非常有助于理解正在发生的情况。