当前位置: 首页 > 知识库问答 >
问题:

一个Cypher查询中的多个LOAD CSV语句

范成周
2023-03-14
// User nodes
LOAD CSV WITH HEADERS
FROM 'file:///profile.csv' AS profile_line
CREATE (user:User { userId: profile_line.User })

// Project nodes
LOAD CSV WITH HEADERS
FROM 'file:///project.csv' AS project_line
CREATE (project:Project { projectId: project_line.projectId })

// Image nodes
LOAD CSV WITH HEADERS
FROM 'file:///media.csv' AS image_line
CREATE (image:Image { imageId: '<imageId>' })

“CREATE和LOAD CSV之间需要WITH(第9行,第1列(偏移量:211))”CREATE(project:project{projectid:project_line.projectID})“

我不清楚WITH语句应该如何构造。

共有1个答案

巢权
2023-03-14

如果您使用的是Neo4j浏览器,最简单的方法就是用分号分隔语句,然后打开“多语句查询编辑器”(当每个语句运行时,它还会给您一个很好的小进度指示器):

LOAD CSV WITH HEADERS
FROM 'file:///profile.csv' as profile_line
CREATE (user: User { userId: profile_line.User });

LOAD CSV WITH HEADERS
FROM 'file:///project.csv' as project_line
CREATE (project: Project { projectId: project_line.projectId });

LOAD CSV WITH HEADERS
FROM 'file:///media.csv' as image_line
CREATE (image: Image { imageId: image_line.ImageId });

否则,仍有可能做到这一点。我们想要的是一个WITH语句,它将返回单行,而不管上一个CREATE最终创建了多少节点,所以任何聚合函数都可以。例如:

LOAD CSV WITH HEADERS
FROM 'file:///profile.csv' as profile_line
CREATE (user: User { userId: profile_line.User })

WITH max(1) as dummy
LOAD CSV WITH HEADERS
FROM 'file:///project.csv' as project_line
CREATE (project: Project { projectId: project_line.projectId })

WITH max(1) as dummy
LOAD CSV WITH HEADERS
FROM 'file:///media.csv' as image_line
CREATE (image: Image { imageId: image_line.ImageId })
Added 9 labels, created 9 nodes, set 9 properties, completed after 17 ms.

尽管我认为这对未来来说是超级不清楚的--你,我不建议你这么做。

 类似资料:
  • 问题内容: 我正在使用+ + + 。 我有4个DELETE,并且只需要1个数据库请求,因此我将DELETE命令与“;” …相连,但是它总是失败。 它引发此错误: 但是,如果我将此SQL粘贴到PhpMyAdmin中,它将始终成功… 如果我在单个查询中写它也是成功的。 感谢帮助! 问题答案: 我猜您正在使用node-mysql。( 但也应该适用于 node- mysql2 ) 该文件说: 出于安全原因

  • 问题内容: 我正在用php(mysql)生成报告, 例如: 这样我有12张桌子。 我可以在单个查询中做到吗。如果我做到了?过程变慢了吗? 问题答案:

  • 我现在在大学学习数据库,在我的项目中,我有3个表:、和 联赛(leagueId,leagueName) 团队(teamId,teamName) 具有(leagueId,teamId,year)

  • 问题内容: 因此,我有一个需要使用mysql_query()加载的SQL转储文件。不幸的是,不可能用它执行多个查询。 ->不能假定安装了 mysql命令行客户端 (mysql –help)-直接加载SQL文件 ->无法假定已安装 mysqli 扩展 下面的explode()无法使用,因为某些转储内容的值包含分号。 在不修改转储文件的情况下加载SQL的最佳方法是什么? 问题答案: 您有更多的问题案例

  • 问题内容: 这合法吗? 问题答案: 对于它的价值,并取决于是否将相同的数据插入到相同的表中,最好用一个插入插入多个值, 例如

  • 我正在尝试查找一个查询唯一的名称列表,并排除两个查询结果之间的共同名称。例如,我想要学生A、B和C所选课程的名称,并从该列表中排除学生D和E所选的课程。在这个问题的答案的帮助下(Neo4j Cypher:从结果中排除某些节点),我尝试了这个密码代码,它是有效的,但我得到的结果是节点。我希望它是一个名称列表,而不是节点。 非常感谢。