Следующее функционально эквивалентно тому, что вы хотите сделать. (Читать «однако ...» ниже)
$query = "SELECT user_id, AES_DECRYPT( user_pass, '".$db_aes_key."' ) AS user_pass ";
$query .= "FROM users_tbl ";
$query .= "WHERE user_id = '".$userId."' ";
$query .= " AND AES_DECRYPT(user_pass, '".$db_aes_key."' ) = '".$userPassProvided."' ";
$query .= "LIMIT 1";
... однако MySQL должен был бы AES-расшифровать каждый зашифрованный пароль в базе данных. Это будет дорогостоящим в вычислительном отношении и не позволит использовать какой-либо индекс SQL.
В качестве альтернативы вы можете зашифровать предоставленный пароль и сопоставить его с теми, которые хранятся в базе данных. Может быть что-то подобное (примечание: не проверено):
$query = "SELECT user_id, AES_DECRYPT( user_pass, '".$db_aes_key."' ) AS user_pass ";
$query .= "FROM users_tbl ";
$query .= "WHERE user_id = '".$userId."' ";
$query .= " AND user_pass = AES_ENCRYPT('".$userPassProvided."', '".$db_aes_key."' ) ";
$query .= "LIMIT 1";