Version MySQL 5.0.67Bogue MySQL? Sélectionnez WHERE id = '1blah'
Jetez un oeil à ce tableau très simple et dites-moi si j'ai trouvé un bug MySQL, j'ai essayé de chercher une réponse mais comme vous pouvez l'imaginer il est un peu difficile de trouver les termes de recherche
CREATE TABLE `product` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `product` VALUES (1, 'jim');
INSERT INTO `product` VALUES (2, 'bob');
de là, je peux alors choisir le
SELECT * FROM `product` WHERE `id` = '1';
suivante Évidemment, cela renvoie une ligne, mais, est-ce donc ce
SELECT * FROM `product` WHERE `id` = '1blah';
Erm ... POURQUOI? C'est sûrement faux ou je deviens fou? Va explorer un peu plus le web avant de déposer un rapport de bug avec MySQL.
Ah ça explique ça, d'accord maintenant pour savoir comment l'arrêter, je ne veux pas ça :) Je pense que BINARY() peut être le chemin – Catharsis
@Catharsis - Ce n'est pas ce que BINARY est pour. Indépendamment, vous devriez vraiment corriger ceci dans votre code de construction de requête SQL, pas dans la requête elle-même. –
@Catharsis: vous pourriez utiliser 'CAST (id comme TEXT)', mais vous perdriez alors la possibilité d'utiliser l'index sur 'id' dans la requête. –