mysql - 跳过mysql中的第一行导出到linux中的.txt文件

标签 mysql linux

我想为谷歌制作站点地图。最快的方法(我认为)是使用 linux 命令将查询直接导出到 txt 文件。我是这样做的

$ mysql  -pMyPassword -e "SELECT concat('http:/mysitecom/',id,'/',urlPart1,'/',urlPart2,'/') as url FROM products LIMIT 50000" > /home/file.xml

问题是谷歌说 txt 文件中只能有 url,我的第一行是“url”,这是结果列名,CSV 文件的典型名称。我怎样才能跳过它?

最佳答案

将其通过管道传输到 tail 应该可以工作

mysql  -pMyPassword -e "SELECT concat('http:/mysitecom/',id,'/',urlPart1,'/',urlPart2,'/') as url FROM products LIMIT 50000" | tail -n +2 > /home/file.xml

请记住,每次更新该表时都必须执行此操作。根据您网站的实现,我认为编写查询并在诸如 domain.com/sitemap 之类的端点输出列表不会太复杂 - 您使用的是什么语言?

使用PHP

非常简单:

// do your regular database connection where $db = mysqli_connect(...);

$resource = mysqli_query($db, "SELECT concat('http:/mysitecom/',id,'/',urlPart1,'/',urlPart2,'/') as url FROM products");

while ($arr=mysqli_fetch_row($resource)){
    $urls[]=$arr[0];
}

header('Content-type: text/plain');
foreach ($urls as $url){
    echo $url.PHP_EOL;
}

应该可以,但还没有测试过! (特别是标题,这是我的头顶)

关于mysql - 跳过mysql中的第一行导出到linux中的.txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26359815/

相关文章:

php - 如何在创建数据库之前忽略配置文件

mysql - 如何将 CSV 文件导入 MySQL 表?

mysql - ALTER TABLE命令在MYSQL中不起作用

php - 在 Wordpress 中加载表行的更多按钮

linux - NT_GNU_BUILD_ID 有什么用?

linux - 将 find -execdir 与 grep 结合使用

Linux x86 CPU指令布局困惑

linux - ARM9 异常导致系统崩溃并生成核心转储

php - 无法在 Highcharts 中的多列 mysql 数组上显示 x 轴标签

linux - 使用 iptables 打开端口