日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql select into outfile NULL值导出的处理方法

發布時間:2024/9/27 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql select into outfile NULL值导出的处理方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1簡介... 1

2 準備... 1

2.1 環境說明... 1

3 安裝... 2

4 配置... 2

5 使用... 2

5.1 驗證實驗... 2

5.2 問題分析... 4

6 延展... 4

7 總結... 4

Mysql select into outfile NULL值導出的處理方法

1簡介

基于mysql select into outfile的方式導出文本文件的處理方法,這里主要針對里面NULL的處理。

2?準備

2.1?環境說明

1 mysql版本10.3.13-MariaDB,同理其它mysql版本效果類似。

-- 查看mysql版本 SELECT VERSION() AS mysql_Version;

mysql_Version

10.3.13-MariaDB

-- mysql 字符集 show variables like '%char%';

Variable_name

Value

character_set_client

utf8

character_set_connection

utf8

character_set_database

utf8

character_set_filesystem

binary

character_set_results

character_set_server

utf8

character_set_system

utf8

character_sets_dir

E:\Program Files\MariaDB 10.3\share\charsets\

3 安裝

無.

4?配置

5?使用

5.1?驗證實驗

1) mysql里創建一個demo表定義id和長度為6的name字段,插入有NULL值的數據驗證

CREATE TABLE demo(id int,name varchar(6),PRIMARY KEY (id)) DEFAULT CHARSET=utf8;

注:

  • 如果character_set_database已經是utf8,那么這里建表時可以不加DEFAULT CHARSET=utf8.
  • 修改character_set_database參數可以在my.ini或者my.cnf里添加或者修改如下內容:
  • [client]

    default-character-set=utf8

    INSERT INTO demo VALUES(10,'中國'); INSERT INTO demo VALUES(11,'中國安徽合肥'); INSERT INTO demo VALUES(13,'abcdef'); INSERT INTO demo VALUES(14,NULL); -- 查看數據 SELECT * FROM demo;

    id

    name

    10

    中國

    11

    中國安徽合肥

    13

    abcdef

    14

    ? ??

    2) 通過mysql select outfile的方式導出數據

    SELECT id,name into outfile "D:\\temp\\demo.txt"? fields terminated by "\t" lines terminated by '\r\n' from demo;

    id

    name

    10

    中國

    11

    中國安徽合肥

    13

    abcdef

    14

    \N

    3) 通過mysql select outfile 配合ESCAPED BY ''導出數據

    SELECT id,name into outfile "D:\\temp\\demo1.txt"? fields terminated by "\t" ESCAPED BY '' lines terminated by '\r\n'? from demo;

    id

    name

    10

    中國

    11

    中國安徽合肥

    13

    abcdef

    14

    NULL

    : 這里的NULL是字符串,如果導入其它數據庫需要加相關參數對NULL進行轉義。

    3) 通過mysql select outfile 配合IFNULL導出數據

    SELECT id,IFNULL(name,'') name into outfile "D:\\temp\\demo2.txt"? fields terminated by "\t" lines terminated by '\r\n'? from demo;

    id

    name

    10

    中國

    11

    中國安徽合肥

    13

    abcdef

    14

    綜上所述建議采用第三種方式:將字段里可能為空的字段加IFNULL的轉換后再導入其它數據庫,如果只是mysql數據庫間的轉換則不需要這么轉換。

    5.2?問題分析

    6?延展

    --拼接IFNULL 結合SELECT outfile 的示例。

    -- 這里對COLUMN_NAME里定義為DESC、DEFAULT等SQL關鍵字的情況,需要加`COLUMN_NAME`轉義 SELECT TABLE_NAME, concat('SELECT ', group_concat(fin order by IS_NULLABLE separator ',') ,' into outfile "D:/temp/demo5.txt"? fields terminated by "\\t" lines terminated by \'\\r\\n\'? from ',TABLE_NAME,';') concat_str FROM(SELECT TABLE_NAME,COLUMN_NAME,IS_NULLABLE,CASE WHEN IS_NULLABLE='NO' THENgroup_concat(COLUMN_NAME order by ORDINAL_POSITION separator ',')WHEN IS_NULLABLE='YES' THENgroup_concat(CONCAT('IFNULL(',COLUMN_NAME,',\'\')') order by ORDINAL_POSITION separator ',')END finFROM information_schema.COLUMNSWHERE TABLE_SCHEMA='test'AND TABLE_NAME='demo'GROUP BY TABLE_NAME,IS_NULLABLE)AGROUP BY TABLE_NAME

    concat_str

    SELECT id,IFNULL(name,'') into outfile "D:/temp/demo5.txt"? fields terminated by "\t" lines terminated by '\r\n'? from demo;

    7?總結

    暫無.有問題可以咨詢如下:

    總結

    以上是生活随笔為你收集整理的Mysql select into outfile NULL值导出的处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。