mysqlでJSON内のフィールドをクエリする方法は何ですか?

MySQLでJSONフィールドをクエリする際には、JSON_EXTRACT関数を使用することができます。この関数は、2つのパラメーターを受け取ります:1つ目はクエリするJSONフィールドで、2つ目は抽出するキーパスです。

例えば、dataというJSONフィールドがあるとします。その中には以下の内容が含まれています。

{
   "name": "John",
   "age": 30,
   "address": {
      "city": "New York",
      "state": "NY"
   }
}

nameキーの値をデータフィールドで検索するには、以下のクエリ文を使用してください。

SELECT JSON_EXTRACT(data, '$.name') AS name FROM table_name;

結果は”名前”キーの値を返します。

JSONフィールド内のキーの値を検索する場合、階層を表すためにドットを使用することができます。例えば、dataフィールド内のaddressキーの下にあるcityキーの値を検索するには、次のクエリを使用します:

SELECT JSON_EXTRACT(data, '$.address.city') AS city FROM table_name;

結果は、都市キーの値を返します。

dataフィールド内の値を検索するには、インデックス番号を使用します。たとえば、dataフィールドにhobbiesという名前のJSON配列が含まれているとします。

{
   "name": "John",
   "age": 30,
   "hobbies": ["swimming", "reading", "traveling"]
}

hobbies配列の最初の値を検索したい場合、以下のクエリ文を使用してください。

SELECT JSON_EXTRACT(data, '$.hobbies[0]') AS first_hobby FROM table_name;

結果は、趣味の配列の最初の値を返します。

注意,上記のクエリ文中のtable_nameは、実際のテーブル名に置き換えてください。

bannerAds