kysely
    Preparing search index...

    Function jsonBuildObject

    • The MySQL json_object function.

      NOTE: This helper is only guaranteed to fully work with the built-in MysqlDialect. While the produced SQL is compatible with all MySQL databases, some third-party dialects may not parse the nested JSON into objects. In these cases you can use the built in ParseJSONResultsPlugin to parse the results.

      const result = await db
      .selectFrom('person')
      .select((eb) => [
      'id',
      jsonBuildObject({
      first: eb.ref('first_name'),
      last: eb.ref('last_name'),
      full: eb.fn('concat', ['first_name', eb.val(' '), 'last_name'])
      }).as('name')
      ])
      .execute()

      result[0]?.id
      result[0]?.name.first
      result[0]?.name.last
      result[0]?.name.full

      The generated SQL (MySQL):

      select "id", json_object(
      'first', first_name,
      'last', last_name,
      'full', concat(`first_name`, ?, `last_name`)
      ) as "name"
      from "person"

      Type Parameters

      Parameters

      • obj: O

      Returns RawBuilder<
          Simplify<
              {
                  [K in string
                  | number
                  | symbol]: O[K] extends Expression<V> ? ShallowDehydrateValue<V> : never
              },
          >,
      >