mysql 输出结果到本地文件中的方法

mysql 输出结果到本地文件中的方法

语法: mysql -e "select statement" > file.csv

注意点: 使用特殊符号分隔不同的filed,使用 IFNULL 函数对 null 做处理。

      用 CONCAT_WS 函数: 

       CONCAT_WS(separator,str1,str2,...)  

CONCAT_WS() stands for Concatenate With Separator and is a special form of CONCAT(). The first argument is the separator for the rest of the arguments. The separator is added between the strings to be concatenated. The separator can be a string, as can the rest of the arguments. If the separator is NULL, the result is NULL.

mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
        -> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
        -> 'First name,Last Name'

CONCAT_WS() does not skip empty strings. However, it does skip any NULL values after the separator argument.

    IFNULL(expr1,expr2)

If expr1 is not NULLIFNULL() returns expr1; otherwise it returns expr2.


例子:

mysql -h 127.0.0.1 -P 3324 -u root -proot -e "SELECT   CONCAT_WS('\\u01',
IFNULL(cdt,'-'),
IFNULL(active,'-'),
IFNULL(leuid_active,'-')) FROM  bigdata_data_market.tdm_phone_active_daily 
where cdt='20150530'" > tdm_phone_active_daily_20150530.csv

mysql -e "select CONCAT_WS('\\u01',IFNULL(id,'-'),IFNULL(tpl_name,'-'),IFNULL(tpl_path,'-')) from zhan.mo_remind" > 'mo_remind.csv'

mysql -e "select CONCAT_WS('\\u01',IFNULL(id,'-'),IFNULL(null,'-')) from zhan.mo_remind" > 'mo_remind.csv'



转载于:https://my.oschina.net/xiangtao/blog/422819

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好,这是一个技术问题,我可以回答。以下是使用 Java Flink 读取 MySQL 并将数据写入本地文件的示例代码: ``` import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.io.jdbc.JDBCInputFormat; import org.apache.flink.api.java.io.jdbc.JDBCOutputFormat; import org.apache.flink.api.java.typeutils.RowTypeInfo; import org.apache.flink.types.Row; import java.sql.Types; public class MySQLToFlink { public static void main(String[] args) throws Exception { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); // 设置 MySQL 连接信息 String username = "your_username"; String password = "your_password"; String drivername = "com.mysql.jdbc.Driver"; String dbURL = "jdbc:mysql://localhost:3306/your_database"; // 设置查询语句 String query = "SELECT * FROM your_table"; // 设置输出文件路径 String outputPath = "file:///path/to/output/file"; // 设置输出文件格式 JDBCOutputFormat.JDBCOutputFormatBuilder outputBuilder = JDBCOutputFormat.buildJDBCOutputFormat() .setDrivername(drivername) .setDBUrl(dbURL) .setUsername(username) .setPassword(password) .setQuery("INSERT INTO your_output_table (column1, column2) VALUES (?, ?)") .setSqlTypes(new int[] {Types.VARCHAR, Types.INTEGER}); // 创建输入格式 JDBCInputFormat.JDBCInputFormatBuilder inputBuilder = JDBCInputFormat.buildJDBCInputFormat() .setDrivername(drivername) .setDBUrl(dbURL) .setUsername(username) .setPassword(password) .setQuery(query) .setRowTypeInfo(new RowTypeInfo(Types.VARCHAR, Types.INTEGER)); // 读取数据 DataSet<Row> data = env.createInput(inputBuilder.finish()); // 处理数据 DataSet<Row> result = data.map(new MapFunction<Row, Row>() { @Override public Row map(Row row) throws Exception { // 在这里进行数据处理 return row; } }); // 输出结果文件 result.output(outputBuilder.setBatchInterval(100).finish()); // 执行任务 env.execute("MySQL to Flink"); } } ``` 请注意,这只是一个示例代码,您需要根据您的实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值