ホームページ  >  に質問  >  本文

MySQL 8.0 の SQL クエリ JSON によって返されるデータ型は配列ではなく文字列です

<p>以下に示すように、MySQL 8.0 でテーブルを作成しました。 <pre class="brush:php;toolbar:false;">CREATE TABLE `airline_table` ( `id` int unsigned NOT NULL AUTO_INCREMENT、 `info` json デフォルト NULL、 主キー (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;</pre> <p>これには JSON タイプのデータが含まれています。次のようにいくつかのデータを挿入しました。</p> <pre class="brush:php;toolbar:false;">INSERT INTO Airlines_table VALUES ('1','{"data": [{"city": "Houston", "state": 「TX」}、 {"都市": "ロサンゼルス", "州": "CA"}], "航空会社": ["UA", "AA"]}'); <p>php を使用してデータベースにアクセスし、「airline」の値を配列として取得したいと考えています。 </p> <pre class="brush:php;toolbar:false;"><?php $mysqli = new mysqli("localhost", "root", "aproot2019", "test"); $sql = "SELECT id, info -> '$.airline' AS 航空会社 FROM airline_table"; $result = $mysqli->query($sql); $row = $result->fetch_array(); //print_r($row); $airline = $row['airline']; echo $airline . "<br>"; // ["UA", "AA"] 、これは配列ではなく文字列ですが、どうすれば配列を取得できますか? echo is_array($airline) ? 'Array' : 'not an Array' . "<br>"; // 配列ではありません echo is_string($airline) ? 'String' : 'not a String' . "<br>" ; // 文字列 $mysqli->close(); ?></pre> <p>ただし、出力されるのは配列ではなく文字列です。 これは本当に面倒です。MySQL の JSON は理解するのが難しいです。 </p>
P粉099985373P粉099985373440日前608

全員に返信(1)返信します

  • P粉253518620

    P粉2535186202023-08-29 14:31:58

    JSON をデコードすることを検討しましたか?

    リーリー

    返事
    0
  • キャンセル返事