knex 按 JSON 字段值排序

knex Sort by JSON field values

我将 knex 与 mysql 一起使用,并且 table 具有 json 值,如下所示:

-Table 1

id    |   name   |   data
------+----------+---------------
1     | Test     | {"city_id": 3, "email":"test@test.com", "city_name":"something"}
2     | Test 2   | {"city_id": 1, "email":"test2@test2.com", "city_name":"another"}
3     | Test 3   | {"city_id": 6, "email":"test3@test3.com", "city_name":"blahblah"}

我如何用 data.city_name desc 和 asc 对这个 table 进行排序?

你可以这样做

knex.table('YourTableName').orderByRaw(`data->"$.city_name" desc`);