我在 MySQL 中创建了这样的表:
DROP TABLE IF EXISTS `barcode`;
CREATE TABLE `barcode` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(40) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `barcode` VALUES ('1', 'abc');
INSERT INTO `barcode` VALUES ('2', 'abc ');
然后我从表格条码中查询数据:
SELECT * FROM barcode WHERE `code` = 'abc ';
结果是:
+-----+-------+
| id | code |
+-----+-------+
| 1 | abc |
+-----+-------+
| 2 | abc |
+-----+-------+
但我希望结果集只有 1 条记录。我解决方法:
SELECT * FROM barcode WHERE `code` = binary 'abc ';
结果是 1 条记录。但我使用 NHibernate 和 MySQL 从映射表生成查询。那么如何解决这个案子呢?