У меня есть таблица в sqlserver, в моей таблице есть поле в виде строки, например FirstName (это просто пример!).Это поле "EncryptByPassPhrase" перед вставкой в базу данных.
Before encode: Ali
After encode: 0x010000001D905174BB7947AE1C600A4AB564A123310F92C21C9A4221
Теперь я буду искать в этом поле, например, я получу все поля, которые содержат символы 'Al'.
Я могу расшифровать это поле и выполнить поиск по:
select * from EncodeTest e
where dbo.Decoder(e.FirstName) like '%Al%'
Но этот способ очень медленный для многих номеров записи.Пожалуйста, помогите мне для лучшего решения.
Спасибо.
Что я пробовал:
declare @EncodedName varbinary(max)
select @EncodedName =EncryptByPassPhrase('key', cast( @Name as varbinary(max)) )
declare @DecodedName nvarchar(max)
select @DecodedName=convert(varchar(100),DecryptByPassPhrase('key',cast( @EncodedName as varbinary(max)) ))
select * from EncodeTest e
where dbo.Decoder(e.FirstName) like '%Al%'