Приведенный вами пример будет работать, если вы используете сортировку без учета регистра, такую как utf8_general_ci
.(Дополнительную информацию см. В разделе руководства MySQL Поддержка наборов символов .)
В качестве альтернативы, вы можете просто использовать функцию LOWER следующим образом:
$names = strtolower(mysql_real_escape_string($_GET['part']));
$result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10");
Кстати, если вы пытаетесь отследить различия, выходящие за рамки простых изменений, вы также можете использовать функцию MySQL SOUNDEX , чтобы получить и найти совпадение для строк, которые звучат одинаково.
Кстативам нужно использовать mysql_real_escape_string в переменной $ names или (еще лучше) использовать подготовленные операторы через интерфейсы mysqli или PDO.