有一个包含10万行数据的表,如下所示:
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"
如果没有加密,则使用密钥(帐户\部门\正常)。
那么,如何使用加密数据和密钥查询相同的结果呢?
1条答案
按热度按时间sqyvllje1#
如果您使用order by to encrypted column,那么mysql将在加密列的基础上给出order by result,因此数据将与您提到的查询数据不匹配。在这种情况下,您可以保留表中的两个列(account和account\u encypted\u value),并且可以通过查询在正常帐户顺序的基础上检索加密的帐户数据。
希望这对你有帮助。