MySQL возвращает NULL в версии 8.0.37, но работает в версии 5.7.MySql

Форум по Mysql
Ответить
Anonymous
 MySQL возвращает NULL в версии 8.0.37, но работает в версии 5.7.

Сообщение Anonymous »

Проблема: При переходе с MySQL 5.7 на 8.0 запрос начал возвращать NULL вместо данных для тех же сжатых данных в поле LONGBLOB.
Контекст:
  • Существует таблица my_table со столбцом my_column LONGBLOB NOT NULL
  • Предположительно, данные были сжаты с помощью COMPRESS()
  • При выполнении запроса SELECT my_column FROM ... я получаю разные результаты для 5.7, у меня есть поле, в 8.0 оно равно нулю
Как решить эту проблему? Кажется, я не могу найти никакой документации по этой теме. Где я могу об этом прочитать? Если возможно, мне нужен запрос, совместимый с обеими версиями.

Код: Выделить всё

CREATE TABLE my_table (
id INTEGER PRIMARY KEY,
my_column LONGBLOB NOT NULL
);

-- QUERY (same for diffrent version)
SELECT
id,
my_column AS test_uncompress,
LENGTH(my_column) AS blob_length,
HEX(LEFT(my_column, 4)) AS magic_header
FROM my_table
WHERE id = 1;
Результаты:



ver. MySQL
test_uncompress
blob_length
magic_header




5.7**
{"valid": "json"
2543
4F


8.0**
NULL
1140
B4




Подробнее здесь: https://stackoverflow.com/questions/798 ... rks-in-5-7
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»