用JavaScript从SQL数据库中提取并显示JSON数据

dsekswqp  于 2023-02-26  发布在  Java
关注(0)|答案(2)|浏览(154)

我的数据库中有一列(student_no)包含JSON数据(String)。

student No: [
     {First_name: 'John',
      Last_name: 'Wick',
      student_id: 1001,
     },
     {First_name: 'David',
      Last_name: 'Stone',
      student_id: 1002, 
     }

如果我只想从数据中读取和显示student_id = 1002,什么是正确的查询?
我尝试使用student_no.student_id = 1002,但语法错误。我想通过访问student_id来访问和显示First_nameLast_name

n3h0vuf2

n3h0vuf21#

    • 使用Javascript代码**

你可以使用Javascript Array Filter.filter)来解决这个问题。

function getSingleData(data, student_id) {
  return data.filter(d => d.student_id === student_id)[0];
}

let data = [ {First_name: 'John', Last_name: 'Wick', student_id: 1001, }, {First_name: 'David', Last_name: 'Stone', student_id: 1002, }];
console.log(getSingleData(data, 1002));
    • 使用Maria数据库查询**

我假设您的表(my_table)如下所示:
| 身份证|学生编号|
| - ------|- ------|
| 1个|[{"名字":"约翰"、"姓氏":"芯"、"学生ID":1001},{"名字":"大卫"、"姓氏":"石头","学生_id":1002年]|
要从student_no列(student_id的对象数组)获取数据,只需使用JSON_TABLE查询,如下所示:

SELECT j.*
FROM my_table m, JSON_TABLE(m.student_no, '$[*]' COLUMNS (
  First_name VARCHAR(50) path '$.First_name',
  Last_name VARCHAR(50) path '$.Last_name',
  student_id INT(11) path '$.student_id')) AS j
WHERE j.student_id = 1002;

输出将为:
| 名字|姓氏|学生标识|
| - ------|- ------|- ------|
| 大卫|石头|小行星1002|

368yc8dk

368yc8dk2#

JSON数据不能用SELECT语句解析。你需要用SELECT查询你想要的列(包括JSON列),然后使用JSON_EXTRACT函数。查看this link,了解在MySQL中处理JSON数据的好例子。

相关问题