gpt4 book ai didi

MySQL 如何使用 WHERE 中的两个加密字段更新记录

转载 作者:行者123 更新时间:2023-11-29 10:05:13 24 4
gpt4 key购买 nike

不确定这是否可行,但如果可以的话,我希望一步完成此操作。如果我的传入值与其他两个加密字段匹配,我想更新字段 3。这是我所拥有的不起作用的...

UPDATE tbl 
SET field3=CONCAT(field3, 'some additional value')
WHERE field1 = ENCRYPTION_APPROACH('my_value_in_the_clear', ENCRYPTION_SETTINGS) AND
field2 = ENCRYPTION_APPROACH('my_other_value_in_the_clear', ENCRYPTION_SETTINGS);

字段 1 和 2 不是键,但以编程方式保证它们是唯一的。加密似乎有效,我可以使用相同的方法最初插入记录,然后再选择它。但是,当我使用经过验证的测试数据运行此命令时,我收到“0 rows受影响”,并且没有错误消息。

我可以进行复合调用,首先使用相同的方法选择记录,然后通过它的键更新它(适用于不同的调用)。但如果可以的话,我真的很想将这一点保持在一步。想法?

最佳答案

啊哈!

环顾四周后,我找到了真正的解决方案。每当您有 CONCAT 并且某些记录失败时,请使用这个小技巧......

UPDATE tbl 
SET field3=IFNULL(CONCAT(field3, 'some additional value'), 'some additional value')
WHERE field1 = ENCRYPTION_APPROACH('my_value_in_the_clear', ENCRYPTION_SETTINGS) AND
field2 = ENCRYPTION_APPROACH('my_other_value_in_the_clear', ENCRYPTION_SETTINGS);

并不是加密失败...而是当 CONCAT 第一次作用于空字段时,它返回了空值。这个小技巧可以让您在第一次尝试连接前一个值时通过,并适用于所有后续调用!

关于MySQL 如何使用 WHERE 中的两个加密字段更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52049196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com