powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL, Boolean и Union
5 сообщений из 5, страница 1 из 1
MySQL, Boolean и Union
    #39865369
S_Gur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток. Наткнулся давеча на интересную ситуацию. У меня есть несколько таблиц почти одинаковой структуры. В каждой из них есть одно и то же поле типа Boolean. Соответственно, у себя в Дельфях я обрабатываю это поле как AsBoolean и до недавнего времени проблем не испытывал. До тех пор, пока мне не понадобилось написать представление, где идет выборка однотипных полей из трех таблиц, соединенных Union. Как только я попытался обработать это представление в Дельфях, мне тут же вылезла ошибка, что Дельфи не могут обработать это поле как Boolean. Пришлось работать с ним как AsInteger, сравнивая с 0 или 1. Эксперименты показали, что если во вьюхе закомментировать две любых таблицы и оставить выборку только из одной, проблема пропадает. Отсюда вопрос - за неимением в MySQL конструкции Cast [поле] As Boolean можно ли как-то скорректировать эту выборку? Я, конечно, могу выкрутиться, но в нескольких местах программы мне было бы очень удобно использовать это поле как булевское. Есть какие-нибудь идеи?
...
Рейтинг: 0 / 0
MySQL, Boolean и Union
    #39865374
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S_Gurза неимением в MySQL конструкции Cast [поле] As BooleanВот глупость сказать - это мы запросто, а в документацию посмотреть не можем...

Cast Functions and Operators
...
Рейтинг: 0 / 0
MySQL, Boolean и Union
    #39865375
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для справки: BOOLEAN - это синоним INT(1).
...
Рейтинг: 0 / 0
MySQL, Boolean и Union
    #39865387
S_Gur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaДля справки: BOOLEAN - это синоним INT(1).

Для справки - во-первых, TinyInt(1) (не знаю, приниципиально это или нет). Во-вторых, ни в одной из функций приведения (во всяком случае, по вашей ссылке), нет возможности привести поле к этому типу. Только Signed или Unsigned, размерность указать нельзя. Мне это никак не помогает - Unsigned Int мой запрос возвращает и без этих конвертаций.
...
Рейтинг: 0 / 0
MySQL, Boolean и Union
    #39865390
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда попробуй в первом UNION (или во всех) выполнить явную конвертацию в BOOLEAN таким способом: вместо

Код: sql
1.
SELECT boolean_field, ...

напиши
Код: sql
1.
SELECT boolean_field = TRUE AS boolean_field, ...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL, Boolean и Union
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]