Я новичок здесь, так что будь добр ко мне. У меня есть следующий сценарий:
У меня есть много таблиц, которые для простоты представлены в виде в моей базе данных MySQL. Моя проблема в том, что мне нужно значение в этом представлении, представляющее, является ли это тем или иным видом события (простым логическим значением), которого я пытался достичь с помощью:
`gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement` AS `IsStopingEvent`
Результат представляется как int, и поэтому читается Entity Framework. Проблема в том, что мне действительно нужно логическое возвращаемое значение, которого я пытался достичь с помощью:
CAST((`gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement`) as boolean) AS `IsStopingEvent`
Это привело к ошибке, которая не отображается мне в MySQL Workbench (я получаю только раздражающее сообщение «У вас ошибка в ...»).
Ребята, вы можете мне помочь?
Пытался решить это в моем приложении, но я действительно предпочитаю, чтобы это решалось в базе данных, так как это будет использоваться другим программным обеспечением позже.
tinyint
. Ни при каких обстоятельствах неIF
возвращает,tinyint
так что я не вижу, насколько этот ответ является правильным или принятым.Вы можете сделать это очень простым способом, без использования избыточного оператора IF ():
источник
Вы также можете попробовать классическое логическое принуждение:
ВЫБРАТЬ НЕ НЕ (что угодно);
Хорошая вещь об этом - то, что это естественно сохраняет NULL, тогда как большинство ответов здесь не делает.
Если вы хотите принудительно установить NULL в FALSE, тогда
ВЫБЕРИТЕ IFNULL (НЕ НЕТ (как угодно), ЛОЖЬ);
источник
Вы также можете использовать «CASE»:
SELECT CASE WHEN yourField=testValue THEN 'TRUE' ELSE 'FALSE' END as boolFieldName
источник
В настоящее время это невозможно.
BOOLEAN
типа (или реального типа массива .. или реального типа JSON). У него есть псевдоним дляTINYINT
.'true' IS TRUE
и1=1
оба возвращаются1
какint
.TINYINT
формат.Насколько я могу сказать, вы не можете ни понизить тип, ни произвести миниатюрный тип в
SELECT
.Я настоятельно рекомендую перейти на PostgreSQL. Это гораздо менее страшно ... и освобождает.
источник
источник