creé tabla como la de MySQL:comparación de cadenas exacta en MySQL consulta
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 ');
Entonces consultar datos de código de barras tabla:
SELECT * FROM barcode WHERE `code` = 'abc ';
El resultado es:
+-----+-------+
| id | code |
+-----+-------+
| 1 | abc |
+-----+-------+
| 2 | abc |
+-----+-------+
Pero quiero que el conjunto de resultados sea solo 1 registro. Tengo una solución con:
SELECT * FROM barcode WHERE `code` = binary 'abc ';
El resultado es 1 registro. Pero estoy usando NHibernate con MySQL para generar consultas desde la tabla de mapeo. Entonces, ¿cómo resolver este caso?
La próxima vez, echar un vistazo a cómo su pregunta va a salir (hay un cuadro de vista previa debajo de su campo de texto), y si se ve un lío, solucionarlo :). Use una cantidad generosa del botón '{}' en la parte superior para el código ..... – Nanne
¿Podría proporcionar las asignaciones de NHibenate y los métodos que utiliza para generar una consulta? ¿Por qué usa SQL nativo con NHibernate? Creo que deberías usar Criteria API o HQL. –
de los documentos: ["Todas las intercalaciones MySQL son de tipo PADSPACE. Esto significa que todos los valores CHAR y VARCHAR en MySQL se comparan sin tener en cuenta ningún espacio posterior"] (http://dev.mysql.com/doc/refman/ 5.0/es/char.html) – Kaii