Как запросить порядок результатов по полю, зашифрованному в mysql

Ниже представлена ​​таблица с данными из 100 тыс. Строк:

CREATE TABLE `person_department_ref` (
  `id` bigint(12) NOT NULL AUTO_INCREMENT,
  `account` varchar(64) NOT NULL,
  `department_id` varchar(64) NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  KEY `account_department_normal` (`account`,`department_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=282 DEFAULT CHARSET=utf8

Я использую код Java для кодирования "account" с помощью AESEncrypt и вставляю данные в таблицу.

я могу использовать

"select distinct r.account from person_department_ref r order by r.account"

с КЛЮЧОМ (account_department_normal), если нет шифрования.

Итак, как я могу запросить тот же результат с зашифрованными данными и с помощью KEY?

0
0
45
1

Ответы 1

Если вы будете использовать заказ по зашифрованному столбцу, тогда Mysql будет отдавать порядок по результату на основе зашифрованного столбца, поэтому данные не будут соответствовать данным запроса, который вы упомянули. При этом вы можете сохранить оба столбца в своей таблице (account и account_encypted_value), и вы можете получить зашифрованные данные учетной записи на основе обычного порядка учетных записей по запросу.

select distinct r.account_encypted_value from person_department_ref r order by r.account

Надеюсь, это вам поможет.

Спасибо. Но я не могу вести «учетную запись» без шифрования из-за моего клиента.

Carlson 29.10.2018 04:52

Другие вопросы по теме