有一个包含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"
如果没有加密,请使用KEY(account_department_normal)。
那么我该如何使用加密数据和KEY查询相同的结果?
答案 0 :(得分:0)
如果将对加密列使用order by,则Mysql将基于加密列给出按结果排序,因此数据将与您提到的查询数据不匹配。在这种情况下,您可以将表中的两个列(account和account_encypted_value)都保留在表中,并且可以通过查询根据常规帐户顺序检索加密的帐户数据。
I/flutter (13029): outer - BoxConstraints(0.0<=w<=961.5, 0.0<=h<=552.9)
I/flutter (13029): inner - BoxConstraints(unconstrained)
希望这对您有所帮助。