Я искал простой способ использовать SELECT LIKE для поля AES_ENCRYPTED с MySQL. Лучше всего работает:
SELECT * FROM table
WHERE CONVERT(AES_DECRYPT(`haystack`,'key') USING utf8) LIKE '%needle%'
Я проверил это на MySQL 5, используя PHP 5.
Это работает очень хорошо при обработке нескольких тысяч строк, но может не подойти для очень больших таблиц из-за дешифрования и преобразования.
Это основной код PHP:
$key = md5("yourchosenkey".$salt);
$query = "SELECT * FROM ".$tableName." ".
"WHERE CONVERT(AES_DECRYPT(`haystack`,'".$key."') USING utf8) ".
"LIKE '%".addslashes($needle)."%'";