Bug #120668 Incorrect result for `LEAST(...) IN (col)`
Submitted: 13 Jun 17:28
Reporter: mu mu Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:9.6.0 OS:Ubuntu
Assigned to: CPU Architecture:Any

[13 Jun 17:28] mu mu
Description:
On identical table data, `WHERE (LEAST("0.6315217925408798", 31617302)) IN (t0.c0)` should return **0** rows, but MySQL 9.6.0 returns **1** row.

How to repeat:
DROP TABLE IF EXISTS `t0`;

CREATE TABLE `t0` (
  `c0` mediumint   DEFAULT NULL COMMENT 'asdf',
  `c1` decimal(10,0) unsigned zerofill  DEFAULT NULL COMMENT 'asdf',
  UNIQUE KEY `i0` (`c0`,`c1`)
);

INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, NULL);
INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, NULL);
INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, NULL);
INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, NULL);
INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, '0');
INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, '0');
INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, '1');
INSERT INTO `t0` (`c0`, `c1`) VALUES (NULL, '871666402');
INSERT INTO `t0` (`c0`, `c1`) VALUES (1, NULL);

SELECT t0.c0 AS ref0, t0.c1 AS ref1 FROM t0 WHERE (LEAST("0.6315217925408798", 31617302)) IN (t0.c0);