I would like to query a range of criteria on multiple columns in MySQL
Assuming you want to match against 1 1 1 you could do something like this:

set @fast:=1;
set @smart:=1;
set @sharp:=1;

SELECT if(`fast`=@fast,1,0) + if(`smart` =@smart,1,0) + if(`sharp`=@sharp,1,0) as score FROM `table` order by score DESC


That should return the exact matches with score 3, people with 2 matches with score 2 and so on.