P粉5417963222023-09-04 00:14:38
BOOLEAN在MySQL中不是内置的数据类型。它是一个别名,并且实现为TINYINT(1)。
参见https://dev.mysql.com/doc/refman/8.0/en/numeric-type-syntax.html
使用隐式数据类型转换:
DECLARE p_array_only BOOL DEFAULT IFNULL(0 + JSON_EXTRACT(in_parameter, '$.array_only'), FALSE);
如果相应的值是字符串类型或null
,则会失败。
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=9c5fac2c7533d9e365a449ce00c06f1b
PS. 短形式DEFAULT IFNULL(0 + in_parameter->'$.array_only', FALSE);
也很有用。
PPS. 当然,也可以使用显式的CAST()。