Оператор SELECT печатает данные странным образом - PullRequest
1 голос
/ 19 февраля 2012

У меня есть таблица MySQL с именем TAG, которая импортирует значения из файла CSV.

mysql> describe TAG;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| TA_BO_ISBN | varchar(14) | YES  |     | NULL    |       |
| TA_Tag     | varchar(30) | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Когда я пытаюсь просмотреть всю таблицу, возникает проблема с номерами ISBN

mysql> select * from TAG;
+----------------+----------------+
| TA_BO_ISBN     | TA_Tag         |
+----------------+----------------+
         |794557 | paris
        |1794558 | france
        |1794559 | europe
          |94560 | city
        |1794561 | lonely

Когда я выбираю номера ISBN, результат выглядит хорошо.

mysql> select TA_BO_ISBN from TAG;
+----------------+
| TA_BO_ISBN     |
+----------------+
| 978-1741794557 |
| 978-1741794558 |
| 978-1741794559 |

Странно, когда я выбираю теги, результаты снова выглядят странно

mysql> select TA_TAG from TAG;
+----------------+
| TA_TAG         |
+----------------+
         |
        |
        |
          |
        |
        |
           |
        |
        |
        |
        |
   |untryside
       |r
         |
      |ges
        |

Это не просто эстетично, я чувствую, что это создает проблемы в моих SQL-запросах. Сценарий импорта на случай, если кому-то интересно.

LOAD DATA LOCAL INFILE 'sql/tags.csv'INTO TABLE TAG FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

1 Ответ

0 голосов
/ 21 февраля 2012
  1. Ваш файл содержит CRLF (\ r \ n) в качестве символов конца строки.
  2. В своем запросе вы указываете MySQL использовать LF (\ n) в качестве символа конца строки для импортаline.
  3. Вывод: символ CR (\ r) импортируется в поле таблицы, а не игнорируется.Это создает визуальные причуды, которые вы видите, когда делаете выбор.

Чтобы исправить это, просто измените ваш запрос на:

LOAD DATA LOCAL INFILE 'sql/tags.csv'INTO TABLE TAG FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...