Saya baru di sini jadi baiklah kepada saya. Saya memiliki skenario berikut:
Saya punya banyak tabel yang, demi kesederhanaan, diwakili dalam Tampilan di database MySQL saya. Masalah saya adalah bahwa saya memerlukan nilai dalam pandangan ini yang mewakili jika itu adalah salah satu jenis peristiwa (boolean sederhana), yang saya coba capai dengan:
`gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement` AS `IsStopingEvent`
Hasilnya direpresentasikan sebagai int, dan dibaca oleh Entity Framework. Masalahnya adalah bahwa saya benar-benar membutuhkan nilai pengembalian boolean, yang saya coba capai dengan:
CAST((`gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement`) as boolean) AS `IsStopingEvent`
Ini menghasilkan kesalahan, salah satu yang tidak ditampilkan kepada saya di MySQL Workbench (saya hanya menerima bahwa "Anda memiliki kesalahan dalam ...").
Bisakah kalian tolong bantu saya?
Mencoba menyelesaikannya dalam aplikasi saya, tapi saya lebih suka ini diselesaikan dalam database, karena akan digunakan oleh perangkat lunak lain nanti.
tinyint
. Dalam keadaan apa pun tidakIF
mengembalikantinyint
jadi saya tidak bisa melihat bagaimana jawaban ini benar atau diterima.Anda dapat melakukannya dengan cara yang sangat sederhana, tanpa menggunakan pernyataan IF () yang berlebihan:
sumber
Anda juga dapat mencoba paksaan boolean klasik:
PILIH BUKAN (apa pun);
Hal yang baik tentang ini adalah bahwa ia secara alami memelihara NULLs, sedangkan sebagian besar jawaban di sini tidak.
Jika Anda ingin memaksa NULL ke FALSE, maka lakukan
PILIH IFNULL (BUKAN TIDAK (apa pun), SALAH);
sumber
Anda juga dapat menggunakan "CASE":
SELECT CASE WHEN yourField=testValue THEN 'TRUE' ELSE 'FALSE' END as boolFieldName
sumber
Saat ini tidak mungkin.
BOOLEAN
tipe nyata , (atau tipe array nyata .. atau tipe JSON nyata). Memiliki alias untukTINYINT
.'true' IS TRUE
dan1=1
keduanya kembali1
sebagaiint
.TINYINT
format.Sejauh yang saya tahu Anda tidak dapat menurunkan tipe, atau menghasilkan tinyint di a
SELECT
.Saya akan sangat menyarankan bermigrasi ke PostgreSQL. Jauh lebih tidak menakutkan ... dan membebaskan.
sumber
sumber