gpt4 book ai didi

MYSQL用随机选择的字符串数组替换字符串数组

转载 作者:行者123 更新时间:2023-11-29 06:48:04 24 4
gpt4 key购买 nike

我有一个包含 user_email 字段的 users 表。我想替换所有匹配的用户电子邮件:

  • *@a.com
  • *@b.com
  • *@c.com

从中随机选择一个字符串

  • d.com
  • 电子商务
  • f.com
  • g.com

示例:

之前:

--------------------------------------
|user_name | user_email | user_phone |
--------------------------------------
| greg | greg@a.com | 12345 |
--------------------------------------
| harry | harr@b.com | 12345 |
--------------------------------------
| mary | mary@c.com | 12345 |
--------------------------------------
| john | john@x.com | 12345 |
--------------------------------------
| fred | fred@y.com | 12345 |
--------------------------------------
| alfred | al@a.com | 12345 |
--------------------------------------

之后(将所有出现的“a.com”、“b.com”、“c.com”替换为从 ["d.com"、"e.com"、"f.com"、 "g.com"]:

--------------------------------------
|user_name | user_email | user_phone |
--------------------------------------
| greg | greg@e.com | 12345 |
--------------------------------------
| harry | harr@e.com | 12345 |
--------------------------------------
| mary | mary@f.com | 12345 |
--------------------------------------
| john | john@x.com | 12345 |
--------------------------------------
| fred | fred@y.com | 12345 |
--------------------------------------
| alfred | al@d.com | 12345 |
--------------------------------------

John 和 Fred 保持不变。 Greg、Harry、Mary 和 Alfred 从 ["d.com", "e.com", "f.com", "g.com"] 随机得到一个。

关于如何做到这一点的任何指示?谢谢

最佳答案

如果您正在寻找一种快速而肮脏的解决方案,您可以使用这样的东西:

UPDATE
emails
SET
emails.address = CONCAT(SUBSTRING_INDEX(emails.address, '@', 1), '@', ELT(1+rand()*3, 'd.com', 'e.com', 'f.com', 'g.com'))
WHERE
SUBSTRING_INDEX(address, '@', -1) IN ('a.com', 'b.com', 'c.com')

请参阅 fiddle here .

使用SUBSTRING_INDEX(address, '@', -1) 你可以得到地址的域部分,你可以检查它是a.com, b.com, c.com等

然后您可以更新您的电子邮件地址,连接地址的第一部分 SUBSTRING_INDEX(address, '@', -1)、分隔符 @ 和使用 ETL 函数随机选择的域:

ELT(1+rand()*3, 'd.com', 'e.com', 'f.com', 'g.com')

其中 1+3 是元素的数量。

关于MYSQL用随机选择的字符串数组替换字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394764/

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