The string literal `'$.id'` should be in single-quotes, not double-quotes. Double-quoted string literals are a mysql-ism. > ~~~ CREATE TABLE t1(myjson json, id VARCHAR(64) AS (json_extract(myjson,'$.id'))); INSERT INTO t1(myjson) VALUES('{"a":5,"id":"xyzzy","b":7}'); SELECT id, myjson FROM t1; ~~~