mysql - shell脚本mysql输出转换

标签 mysql regex shell

我有一个脚本可以将我的 mysql 数据库与另一台服务器同步/输出。

我知道如何在 shell 中调用此 SQL 查询。但是,是否可以将此脚本的输出从 php 转换为 shell 脚本以保持如下所示的格式(基本上由“|”和一些 URL 分隔的值)?我需要以下特定格式的输出:

$sql=mysql_query("SELECT a, b, c, d, e FROM tableA LEFT JOIN tableB USING (a)");

while ($res=mysql_fetch_array($sql))
              {
                echo $res['a']."|".$res['b']."|".$res['c']."|http://www.url.com/".$res['e']."/".$res['a'].".php|http://www.url.com/link/".urlencode($res['b'])."\n";
              }   

谢谢

最佳答案

您可以通过从命令行传递给 mysql 的简单查询来完成所有这些连接:

mysql -u username -ppassword -D dbname << eof
SET sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT';
SELECT a || '|' || b || '|' || c || '|http://www.url.com/' || e || '/' || a || '.php|http://www.url.com/link/' || b AS joinedColum FROM tableA LEFT JOIN tableB USING (a);
eof

第一个 SET,在 MySQL 中将管道设置为 concat 运算符,这样您就可以使用 SQL 标准双管道连接字符串,而不是使用烦人的 CONCAT 函数......之后结果集是直接在 SQL 查询中连接字符串. 通过这种方式,您可以从 bash 脚本执行此命令,而无需安装 php 解释器 ...

关于mysql - shell脚本mysql输出转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589000/

相关文章:

java - 正则表达式:简单除法字符串的模式

linux - 为什么在 bash 脚本中查找匹配的 `"' 错误时会出现语法错误和意外的 EOF?

linux - 用于记录服务器检查的 Shell 脚本手动运行,但不是来自 cron

php - 如何从 MySQL 数据库中逐字符提取文本?

mysql - 我有一个数据库。如何创建使用两个表中的信息的触发器?

mysql - 以绩效为中心的声誉的数据库设计

php - 私聊系统MYSQL查询ORDER BY和GROUP BY

python - 如何使用 pandas 创建新的 df 列以使用正则表达式获取列名称和值?

python - Pandas 单词中重复的元音和辅音

linux - O/P重定向到/dev/null时到哪里去了