Конвертировать uuid из bin в select * statment

У меня есть столбец идентификатора в моей таблице mysql, который содержит uuid в двоичной (16) форме, если я выберу только этот конкретный столбец, например:

SELECT uuid_from_bin(id) FROM table_name;

я получу uuid правильно, но как только я попытаюсь выбрать * вот так: select * from table_name; я получаю uuid в двоичной форме.

я пробовал что-то вроде этого:

SELECT uuid_from_bin(id),* FROM table_name;

но это дает мне ошибку

И какую ошибку вы получаете? Пожалуйста, включите в вопрос полное сообщение об ошибке.

Joakim Danielson 07.04.2019 14:00

Не используйте select *. Укажите только те столбцы, которые вам нужны. Вот почему.

Zohar Peled 07.04.2019 14:02

@ZoharPeled Мне нужен каждый столбец, но идентификатор должен быть преобразован в uuid, вот и все, я могу указать каждый столбец по имени, но я подумал, что есть более простой подход

j.broklin 07.04.2019 14:06

Использование select * — это плохая практика, за некоторыми исключениями здесь и там.

Zohar Peled 07.04.2019 14:08
"Не используйте select *. Укажите только те столбцы, которые вам нужны" Я полностью согласен с @ZoharPeled в том, что большинство слоев абстракции базы данных работают именно так и выбирают все данные из записи, если вы не создаете свой запрос вручную.
Raymond Nijland 07.04.2019 14:20

@RaymondNijland, что никоим образом не делает это хорошей практикой. Я лично избегаю использования полномасштабных ORM частично из-за проблем с производительностью....

Zohar Peled 07.04.2019 14:22
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
6
206
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

попробуйте использовать псевдоним для вашей таблицы. в моем примере псевдоним t

SELECT uuid_from_bin(t.id), t.* FROM table_name t;

если вам нужны только определенные столбцы, не используйте * в select. используйте только те столбцы, которые вам нужны например

SELECT uuid_from_bin(t.id), t.col1, t.col2 ...
  FROM table_name t;

это работает, но я все еще получаю исходный идентификатор с uuid в двоичном формате

j.broklin 07.04.2019 14:03

это потому, что вы делаете select * , выберите только те столбцы, которые вам нужны

hotfix 07.04.2019 14:04
Ответ принят как подходящий
SELECT *, uuid_from_bin(id) as uuid FROM table_name;

это работает, но я все еще получаю исходный идентификатор с uuid в двоичном формате

j.broklin 07.04.2019 14:03

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

shakhawat 07.04.2019 14:06

Другие вопросы по теме