MySQL の BOOL 変数を JSON の BOOL 値に設定できませんか?
<p>MySQL バージョン: 8.0.27</p>
<p>これは私にとって意味がありません。次の定義があります: </p>
<pre class="brush:php;toolbar:false;">DECLARE p_array_only bool DEFAULT IFNULL(JSON_EXTRACT(in_parameters, '$.array_only'),FALSE);</pre>
<p>正しい JSON 構造を渡した場合: </p>
<pre class="brush:php;toolbar:false;">{"array_only":true}</pre>
<p>エラーが発生します:</p>
<pre class="brush:php;toolbar:false;">行 1 の列 'p_array_only' の値 'true' が正しくありません</pre>
<p>キーを完全に省略しても機能することに注意してください (IFNULL は Null を返し、FALSE に設定されるため)。 </p>
<p>何が起こったのですか? JSON からの他のすべてのコード割り当て (INT、Text、SMALLINT など) は正常に機能します。形式はまったく同じです。そして、このコードは数か月前 (8.0.24 を使用) には機能していたと確信しています。 </p>
<p>私も試してみました: </p>
<pre class="brush:php;toolbar:false;">IFNULL(IF(JSON_EXTRACT(@test1, '$.array_only') IS TRUE,TRUE,FALSE),FALSE)</pre>
<p>同じエラーです。 </p>
<p>それでは、8.0.27 で true/false BOOL JSON 値を BOOL MySQL 値に簡単に変換するにはどうすればよいでしょうか? </p>