这样的查询是否会基本上解密每个where条件的用户名或仅解密一次并将其应用于每个条件?
SELECT *
FROM TableA
WHERE (
CONCAT_WS(
' ',
AES_DECRYPT(TableA.FirstName, "fnkey"),
AES_DECRYPT(TableA.LastName, "lnkey")
) LIKE '%RAY%'
OR
CONCAT_WS(
' ',
AES_DECRYPT(TableA.LastName, "lnkey"),
AES_DECRYPT(TableA.FirstName, "fnkey")
) LIKE '%RAY%'
);
我无法确定该函数是否为每行或更多进行一次评估。它取决于查询优化器。您可以通过基准来建立它。
无论如何,这个查询是非常低效的。它将进行全表扫描并为每一行计算此功能。您不能在此处使用索引。您不会在多于两行的表上实现此查询。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句