Зависит от того, как вы храните это имя «Джон».Если это ЕДИНСТВЕННАЯ вещь в определенной области, вы можете сделать что-то вроде
SELECT ...
FROM sometable
WHERE cryptedfirstname = AES_ENCRYPT('John', $key)
Если «Джон» является частью более крупной строки («Джон Доу» или «Кинг Джон, Правитель Вселенной»)тогда вам придется расшифровать полное поле и сопоставить его с этим
SELECT ...
FROM sometime
WHERE INSTR(AES_DECRYPT(cryptedFULLame, $key), 'John') > 0
Обратите внимание, что я встраиваю ключ дешифрования в запрос.Плохая идея для производственной системы, но это только пример.
Вы не сможете сделать что-то вроде:
...
WHERE INSTR(cryptedFULLname, AES_ENCRYPT('John', $key))
из-за того, как AES и большинство других пользователей / приличныхкриптосистемы работают.