Оператор SELECT для удаления пустых столбцов из набора результатов с переменными данными

У меня есть таблица, импортированная из CSV в качестве промежуточного шага для сбора данных в другие таблицы. Все столбцы в этой таблице могут быть пустыми, но до тех пор, пока в одном столбце есть данные, это допустимая строка. Из-за этого могут быть полные строки с пустыми данными, которые нельзя принимать во внимание. Вот (упрощенный) пример такой таблицы:

/* Table Structure */ CREATE TABLE `imported_data` ( `title` varchar(45) DEFAULT NULL, `description` varchar(45) DEFAULT NULL, `language` varchar(45) DEFAULT NULL, `url` varchar(45) DEFAULT NULL, `category` varchar(45) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 /* Table Data */ INSERT INTO imported_data (title, `description`, `language`, url, category) VALUES (‘Le Titre’, », ‘fra’, », ‘1’), (», ‘English Letters for Kids’, », ‘https://anything.net’, ‘2’), (», », », », »), (‘Master’, ‘The greatest master.’, ‘eng’, ‘https://www.master.com’, ‘3’), (», », », », »), (», », ‘spa’, », »); ╔══════════╤══════════════════════════╤══════════╤═══════════════════════╤══════════╗ ║ title │ description │ language │ url │ category ║ ╠══════════╪══════════════════════════╪══════════╪═══════════════════════╪══════════╣ ║ │ │ fra │ │ 1 ║ ╟──────────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ English letters for Kids │ │ https://anything.net │ 2 ║ ╟──────────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ │ │ │ ║ ╟──────────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ The greatest master. │ eng │ https://www.master.com │ 3 ║ ╟──────────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ │ │ │ ║ ╟──────────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ │ spa │ │ ║ ╚══════════╧══════════════════════════╧══════════╧═══════════════════════╧══════════╝

ПРИМЕЧАНИЕ. Учтите, что приведенная выше таблица / данные поступают из внешнего источника и не подлежат изменению, у них также нет первичного ключа. Он просто импортируется, как в MySQL. Я не получу NULL значений, так как все столбцы VARCHAR.

Я использую следующий оператор SELECT, чтобы получить эту же таблицу, но без полных пустых строк:

SELECT title, `description`, `language`, url, category FROM imported_data2 WHERE title != » OR `description` != » OR `language` != » OR url != » OR category != » ╔═══════╤══════════════════════════╤══════════╤═══════════════════════╤══════════╗ ║ title │ description │ language │ url │ category ║ ╠═══════╪══════════════════════════╪══════════╪═══════════════════════╪══════════╣ ║ │ │ fra │ │ 1 ║ ╟───────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ English letters for Kids │ │ https://anything.net │ 2 ║ ╟───────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ The greatest master. │ eng │ https://www.master.com │ 3 ║ ╟───────┼──────────────────────────┼──────────┼───────────────────────┼──────────╢ ║ │ │ spa │ │ ║ ╚═══════╧══════════════════════════╧══════════╧═══════════════════════╧══════════╝

Что мне нужно сделать, чтобы удалить столбцы, все строки которых пусты? В этом примере мне нужна таблица, как указано выше, но без пустого столбца title.

Поскольку эти данные являются динамическими, могут быть случаи, когда другой столбец или столбцы будут пустыми, и я не могу заранее знать, какой из них будет таким.

Невозможно сделать столбцы динамическими, только строки.   —  person Metafaniel    schedule 13.10.2020

Если вы не пишете динамический SQL в хранимой процедуре.   —  person Metafaniel    schedule 13.10.2020

Рассмотрите возможность обработки проблем с отображением данных (если это так) в коде приложения.   —  person Metafaniel    schedule 13.10.2020

Обычно обрабатывается в коде постфактум, или вы можете создать временную таблицу с результатами и удалить столбцы из временной таблицы, а затем выбрать * из временной таблицы.   —  person Metafaniel    schedule 13.10.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!