Mysql
MySQL:基於 JSON 布爾值的虛擬列 - 可以將布爾值轉換為 tinyint 嗎?
我有一個帶有 json 欄位的表和一個具有以下配置
attributes
的虛擬 tinyint(布爾)列:flights
JSON_UNQUOTE(attributes->"$.flights")
json 欄位中的
flights
屬性是“真正的”布爾值,例如。true
. 當將此屬性添加到 MySQL 返回的 json 欄位時Incorrect integer value: 'true' for column 'flights' at row 1
,這是可以理解的。我的問題是是否可以更改虛擬列的配置,以便將布爾值即時轉換為正確的整數值?
最終我自己在苦苦掙扎後找到了解決方案。如果有人正在尋找類似的答案 - 這就是我的做法:
CAST(attributes->"$.flights" as signed int)
WITH cte AS ( SELECT CAST('{"flights":true}' AS JSON) attributes UNION ALL SELECT '{"flights":false}' ) SELECT JSON_PRETTY(attributes), attributes->'$.flights' + 0 FROM cte
db<>在這裡擺弄