У меня есть столбец идентификатора в моей таблице 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;
но это дает мне ошибку
Не используйте select *
. Укажите только те столбцы, которые вам нужны. Вот почему.
@ZoharPeled Мне нужен каждый столбец, но идентификатор должен быть преобразован в uuid, вот и все, я могу указать каждый столбец по имени, но я подумал, что есть более простой подход
Использование select *
— это плохая практика, за некоторыми исключениями здесь и там.
@RaymondNijland, что никоим образом не делает это хорошей практикой. Я лично избегаю использования полномасштабных ORM частично из-за проблем с производительностью....
попробуйте использовать псевдоним для вашей таблицы. в моем примере псевдоним 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 в двоичном формате
это потому, что вы делаете select *
, выберите только те столбцы, которые вам нужны
SELECT *, uuid_from_bin(id) as uuid FROM table_name;
это работает, но я все еще получаю исходный идентификатор с uuid в двоичном формате
Я не думаю, что это было бы очень прямолинейно. Почему бы просто не проигнорировать один дополнительный столбец в результате?
И какую ошибку вы получаете? Пожалуйста, включите в вопрос полное сообщение об ошибке.