gpt4 book ai didi

mysql - 如何以 json 格式导出所有具有从所述日期到所述日期的对话表的数据库

转载 作者:行者123 更新时间:2023-11-30 21:54:01 25 4
gpt4 key购买 nike

这里是已知的:

数据库引擎:MySQL
外壳:/bin/bash
开始日期
结束日期

这是我遇到的问题:
如何查询所有数据库并将它们的名称放在数组中
如何查询conversations表从开始日期到结束日期
如何以 json 格式转储该数据

这是我目前所拥有的:

#!/bin/bash  

data_base="*"
db_user="superfly"
db_pass="superflypassword"
start_date=""
end_date=""
wdir="/home/superfly"

cd $wdir
mysqldump -hlocalhost -u${db_user} -p${db_pass} $data_base conversations > ${data_base}_conversations.sql

最佳答案

您可以获取数据库名称并在 bash 脚本中遍历它们,如下所示:

mysql -BNe "SELECT TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME='conversations'" | while read schema
do
...
done

Mysqldump 不以 JSON 格式输出。它输出一个 SQL 脚本,或者带有选项 --tab 的 CSV 文件。

mysql客户端也不输出JSON格式

但是您可以使用 MySQL 5.7 JSON 函数从列构造 JSON 文档:

mysql -BN --database=$schema --execute="SELECT 
JSON_OBJECT('col1', col1, 'col2', col2, 'col3', col3, 'col4', col4)
FROM conversations WHERE date_col BETWEEN '<start-date>' AND '<end-date>'"

这至少会将每一行输出为一个单独的 JSON 文档。要使整个集合成为一个长 JSON 文档,您必须在开头和结尾手动添加一些 JSON 语法,并在行之间插入逗号。

另一个选择是 MySQL Shell。这是一个客户端工具,是一个相对较新的产品。它是免费的,但需要单独安装。参见 https://dev.mysql.com/doc/refman/5.7/en/document-store-shell-install.html获取安装帮助。

你会像这样使用它:

mysqlsh --sql --database=$schema --execute="show tables" --json

在这个例子中,我只是运行show tables,但你可以运行任何SQL查询。在此处阅读有关 MySQL Shell 的更多信息:https://dev.mysql.com/doc/refman/5.7/en/mysql-shell.html

关于mysql - 如何以 json 格式导出所有具有从所述日期到所述日期的对话表的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46008437/

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