O MySQL FIND_IN_SET ou equivalente pode ser criado para usar índices?

Se eu comparar

explain select * from Foo where find_in_set(id,'2,3');
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
|  1 | SIMPLE      | User  | ALL  | NULL          | NULL | NULL    | NULL |    4 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

com este

explain select * from Foo where id in (2,3);
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table | type  | possible_keys | key     | key_len | ref  | rows | Extra       |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
|  1 | SIMPLE      | User  | range | PRIMARY       | PRIMARY | 8       | NULL |    2 | Using where |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+

É evidente queFIND_IN_SET faznão explorar a chave primária.

Quero colocar uma consulta como a acima em um procedimento armazenado, com a seqüência separada por vírgula como argumento.

Existe alguma maneira de fazer com que a consulta se comporte como a segunda versão, na qual o índice é usado, mas sem conhecer o conteúdo do ID definido no momento em que a consulta é gravada?

questionAnswers(1)

yourAnswerToTheQuestion