1w 条数据在 excel 里,如何在数据库里利用这些数据查询出想要的数据

2018-11-01 16:52:06 +08:00
 5ispy
简单来说就是,一个 student 表,里面有学生 id 和分数 score。现在有个 excel 表里有 1w 条学生 id,怎么能查出这些 id 对应的分数?
6256 次点击
所在节点    程序员
67 条回复
sutra
2018-11-02 00:29:46 +08:00
首先将 Excel 内的 ID 另存为 CSV 之类的纯文本文件,得到 ids.csv 。

比如:
$ cat ids.csv
1
2
3

然后生成 SQL 语句:
$ cat ids.csv | awk 'BEGIN{ print "select id, score from student where id in("}{print "'\''"$1"'\'',"}END{ print "'\''0'\'');"}' > ids.sql

生成的 SQL 如下:
$ cat ids.sql
select id, score from student where id in(
'1',
'2',
'3',
'0');

将该 SQL 去数据库中查询,将查询结果导出成 CSV 格式(不同的数据库引擎或者数据库工具导出方式不一样,比如 psql -t -A -F ",")。
CEBBCAT
2018-11-02 01:15:46 +08:00
@likuku #37 这也许算是一个好问题,因为解法多样有挑战性
PythonAnswer
2018-11-02 02:03:19 +08:00
才 1w 行。现代 excel 能装 100w 行。
8e47e42
2018-11-02 06:03:33 +08:00
问导师要 20 个人的经费,然后请两个人请他们吃顿饭,让他们手动一个个去数据库里面查了抄进 excel 里。

这是典型的印度人肉云的运作方式,有技术、有钱赚、有创新精神,最重要的是下次有同样需求的时候可以以人力成本上升为理由成倍涨价
KingPL
2018-11-02 09:12:29 +08:00
作业不应该自己完成么...
5ispy
2018-11-02 10:42:44 +08:00
@ioschen 对对对 场景是这样的
5ispy
2018-11-02 10:43:24 +08:00
@sambohuang 额 我遇到的问题是 6 楼说的那样的,我在帖子里没说清楚。。
5ispy
2018-11-02 10:51:34 +08:00
@alcarl 额。。。怪我没讲清楚具体场景。其实这个是工作中遇到到的问题,我只是简化了,真实的是数据库表里有 160w 条数据我需要用 excel 里的 id 去查数据库里的数据。oracle 数据库。
5ispy
2018-11-02 10:53:32 +08:00
@8e47e42 你的段位明显超出程序员的范畴了,,,
5ispy
2018-11-02 10:57:30 +08:00
@bridgeca0 用 in 的话 速度慢,没敢试怕把机器搞死,而且 in 里面数据量是有限制的,oracle 好像只能 1000 个
5ispy
2018-11-02 10:58:49 +08:00
@Tumblr 这个是用 excel 直接连接的数据库?
5ispy
2018-11-02 11:00:28 +08:00
@CivAx (⊙o⊙)哦!我去试一下,感谢!
5ispy
2018-11-02 11:01:23 +08:00
@sutra 这样也是用的 sql 的 in 吧
gaius
2018-11-02 11:14:52 +08:00
11L 的方法不错 装个 Navicat
Tumblr
2018-11-02 11:17:57 +08:00
@5ispy #51 是的,Excel 本身就可以直接连接数据库的,装驱动就好,像 MySQL-Connector 啊,ODBC 之类的。
其实你的这个问题,Google 一下很多的,https://www.google.com/search?q=excel+database+query+based+on+cell+value&newwindow=1
shangfabao
2018-11-02 11:30:43 +08:00
笨的方法,数据导出 excel,两个 excel 内容合并一下,Vlookup 一下,5 分钟之内直接搞定
NB40B938mff85mtq
2018-11-02 11:34:18 +08:00
连表查询了解一下
sdalkesioe
2018-11-02 13:13:05 +08:00
OPENROWSET 可以直接查啊
windedge
2018-11-02 14:12:30 +08:00
likuku
2018-11-02 14:32:14 +08:00
@5ispy [额。。。怪我没讲清楚具体场景。其实这个是工作中遇到到的问题,我只是简化了,真实的是数据库表里有 160w 条数据我需要用 excel 里的 id 去查数据库里的数据。oracle 数据库。]


额,不同数量级有时就是有完全不同的玩法(甚至是各自有完全不同的唯一解,同一时代条件),
否则 大数据相关技术 就真成了个谎言 /笑话。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/503471

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX