mysql按查询条件导出指定数据方法

按条件导出mysql表的数据:

 代码如下 复制代码

theyestoday=`date -d “-1 day” +%y%m%d`  #前天日期

#将查询语句写入sql文件
linux中导出

 代码如下 复制代码
echo “SELECT NULL, coder, clicknum, time FROM  stat.yl_clicks WHERE time = unix_timestamp(‘$theyestoday2 00:00:00′)  into outfile ‘/var/lib/mysql/stat/yl_clicks.sql’;” > cmd_yl_clicks.sql

window系统下导出

 代码如下 复制代码

SELECT ITEM1_1,ID,ITEM2_1,ITEM11_1,ITEM9_1,ITEM7_1,ITEM8_1,ITEM4_1,ITEM4_2,ITEM6_1,ITEM6_2,ITEM5_1,ITEM5_2,ITEM5_3,ITEM5_4,ITEM5_5,ITEM5_6,ITEM5_7 FROM `ID_7_vote_insert` WHERE `VoteID`='7' order by ITEM1_1 asc into outfile '/tmp/test_new.txt' fields terminated by ',' enclosed by '"';

 

#删除上次生成的

 代码如下 复制代码

rm -rf /var/lib/mysql/stat/yl_clicks.sql

#执行sql文件中的语句

 代码如下 复制代码

mysql -u用户名  -p密码  -hlocalhost < cmd_yl_clicks.sql

#执行完成后将生成查下结果数据文件 yl_clicks.sql

导入数据

#导入数据并生成导入日志(记录的导入的数据情况,如导入多少条记录)

 代码如下 复制代码

mysqlimport -u用户名  -p密码 -f -i stat “D:systemMySqlMySQL Server 5.0datastatyl_clicks.sql” >> Synchronization2.log

总结:

字符串要处理好,不然容易出错。
使用select into outfile "filename"语句,前提必须拥有文件的权限。
比如:
数据库是mysql

 代码如下 复制代码
mysql> select * from user into outfile "a.txt";

上面就可以完成将表user从数据库中卸到a.txt文件中。注意文件名要加单引号。那么a.txt文件就在mysql目录下有一个 data目录,它即是数据库文件所放的地方。在这里就是mysql下面就会存在一个a.txt的文件。a.txt的内容就是:
localhost root *6F7418838FC8B9085D8B2E7484D471E34710F635 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y     0 0 0 0

时间: 2024-09-24 14:01:36

mysql按查询条件导出指定数据方法的相关文章

mysql怎么查询10-20条的数据

问题描述 mysql怎么查询10-20条的数据 mysql怎么查询1-5条的数据?????????????????? 解决方案 select * from table limit 0, 5 select * from table limit 10, 20 解决方案二: 在select语句后面使用limit

SQL Server导出导入数据方法

一.导出导入SQL Server里某个数据库 1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库. 2.备份 选数据库-完全, 目的 备份到 按添加按钮 文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak) 重写 选重写现有媒体 最后按确定按钮. 如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输. 3.通过FTP或者remote desktop或者pcanywhere等方法 把第二

mySQL子查询拿不出数据

问题描述 我的mySQL是5.0版本的可是select * from rights where id not in ( select id from rights limit 80) limit 10;这句还是说不支持这是为什么呢? 解决方案 首先 你的版本可能太低了不支持这个子查询:当然我的也不支持 所以出错引用This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'如果你的 意思是分页 或者查询第

mysql导出指定数据或部份数据的方法_Mysql

这个时候mysqldump可能就不大好使了,使用下面的方法则可以解决这个问题. 方法一.insert和select结合使用 1.新建一个表,比如new-table,包含所要导出的字段的名称,比如a,b,c 2.使用insert into new-table (a,b,c) select a,b,c from old-table; 3.剩下的步骤就是导出这个新的表,然后进行文本的处理 方法二.使用MySQL的SELECT INTO OUTFILE 备份语句(推荐) 在下面的例子中,生成一个文件,各

mysql嵌套查询和联表查询优化方法_Mysql

嵌套查询糟糕的优化在上面我提到过,不考虑特殊的情况,联表查询要比嵌套查询更有效.尽管两条查询表达的是同样的意思,尽管你的计划是告诉服务器要做什么,然后让它决定怎么做,但有时候你非得告诉它改怎么做.否则优化器可能会做傻事.我最近就碰到这样的情况.这几个表是三层分级关系:category, subcategory和item.有几千条记录在category表,几百条记录在subcategory表,以及几百万条在item表.你可以忽略category表了,我只是交代一下背景,以下查询语句都不涉及到它.这

Oracle数据导入导出10g数据方法

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用. 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,  DOS中可以执行时由于 在oracle 8i 中  安装目录ora81BIN被设置为全局路径,  该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出

mysql触发器数据库同步数据方法

mysql教程触发器数据库教程同步数据方法 <script language="网页特效"> function res(){ document.getElementById("tab2").value = "pre_"+document.getElementById("tab1").value; } </script> </head> <body> <form action

MySQL常用的查询随机数据方法对比

方案一: 代码如下:  代码如下 复制代码 SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1; 这种方法的问题就是非常慢.原因是因为MySQL会创建一张零时表来保存所有的结果集,然后给每个结果一个随机索引,然后再排序并返回. 有几个方法可以让它快起来. 基本思想就是先获取一个随机数,然后使用这个随机数来获取指定的行. 由于所有的行都有一个唯一的id,我们将只取最小和最大id之间的随机数,然后获取id为这个数行.为了让这个方法当id不连续时也能有效,我

mysql随机查询若干条数据的方法_Mysql

在mysql中查询5条不重复的数据,使用以下: 复制代码 代码如下: SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了.但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据. 复制代码 代码如下: SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX