gpt4 book ai didi

mysql - 用于合并两个列表并删除重复项的 Shell 脚本

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

我有以下代码:

get_list_a(){    $MYSQL -B -u $USER --passwword="$PW" $DB1 <<EOFselect name, value from mytable_aEOF}get_list_b(){    $MYSQL -B -u $USER --passwword="$PW" $DB2 <<EOFselect name, value from mytable_bEOF}get_list_a >$test.txt

现在我需要先合并a和b并删除所有重复项(键是名称,第一列)然后将它们写入test.txt。假定列表 a 和列表 b 本身是不同的。如果a中的x和b中的y存在使得x.name=y.name,那么我只想保留x。我该怎么做?注意:在 SQL 中合并不是一种选择,因为它们位于具有不同排序规则的不同数据库中。

一个例子:
get_list_a 打印

aaa bbbccc ddd

get_list_b 打印

aaa fffggg hhh

我想将以下内容写入文件:

aaa bbbccc dddggg hhh

最佳答案

按照这些思路进行 SQL 查询是否可行? (未经测试)

SELECT COALESCE(x.name,y.name),COALESCE(x.value,y.value)
FROM mytable_a AS x
FULL JOIN mytable_b AS y
ON x.name = y.name;

编辑:好的,如果它们在不同的数据库中,并且字段如您在评论中指出的那样以空格分隔,我可能会在 perl 或 awk 中使用关联数组,让 x (a) 中的值覆盖来自 y (b) 的值。像这样的东西(仍未测试):

get_list_a > x.txt
get_list_b > y.txt
cat y.txt x.txt | awk '{ data[$1] = $2; } END { for (i in data) { print i, data[i]; }}'

关于mysql - 用于合并两个列表并删除重复项的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3096484/

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