After adding another row into the table t1: INSERT INTO t1 VALUES ('b', 'b'); similar problems with comparison predicates and with BETWEEN easily can be demonstrated: MariaDB [test]> EXPLAIN -> SELECT MIN(f1) FROM t1 WHERE f1 >= 'abc'; +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ | 1 | SIMPLE | t1 | ALL | NULL | NULL | NULL | NULL | 2 | Using where | +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ 1 row in set (0.00 sec) MariaDB [test]> SELECT MIN(f1) FROM t1 WHERE f1 >= 'abc'; +---------+ | MIN(f1) | +---------+ | b | +---------+ 1 row in set (0.00 sec) MariaDB [test]> MariaDB [test]> EXPLAIN -> SELECT MIN(f2) FROM t1 WHERE f2 >= 'abc'; +----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+ | 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away | +----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+ 1 row in set (0.00 sec) MariaDB [test]> SELECT MIN(f2) FROM t1 WHERE f2 >= 'abc'; +---------+ | MIN(f2) | +---------+ | a | +---------+ 1 row in set (0.00 sec) MariaDB [test]> MariaDB [test]> EXPLAIN -> SELECT MIN(f1) FROM t1 WHERE f1 BETWEEN 'abc' AND 'b' ; +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ | 1 | SIMPLE | t1 | ALL | NULL | NULL | NULL | NULL | 2 | Using where | +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ 1 row in set (0.00 sec) MariaDB [test]> SELECT MIN(f1) FROM t1 WHERE f1 BETWEEN 'abc' AND 'b' ; +---------+ | MIN(f1) | +---------+ | b | +---------+ 1 row in set (0.00 sec) MariaDB [test]> MariaDB [test]> EXPLAIN -> SELECT MIN(f2) FROM t1 WHERE f2 BETWEEN 'abc' AND 'b' ; +----+-------------+-------+------+---------------+------+---------+------+------+-------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+------+-------------------------+ | 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | No matching min/max row | +----+-------------+-------+------+---------------+------+---------+------+------+-------------------------+ 1 row in set (0.00 sec) MariaDB [test]> SELECT MIN(f2) FROM t1 WHERE f2 BETWEEN 'abc' AND 'b' ; +---------+ | MIN(f2) | +---------+ | NULL | +---------+ 1 row in set (0.00 sec)