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

时间:2014-10-14 11:33:31

标签: mysql linux

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

$ mysql  -pMyPassword -e "SELECT concat('http:/mysitecom/',id,'/',urlPart1,'/',urlPart2,'/') as url FROM products LIMIT 50000" > /home/file.xml
问题是google说txt文件中只有url,而我的第一行是" url"这是生成的列名,是CSV文件的典型名称。我怎么能跳过它?

1 个答案:

答案 0 :(得分:2)

将其管道传输到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;
}

应该工作但是没有经过测试! (尤其是标题,这是我的头顶)