Javascript 从mysql字段中获取一行数据

Javascript 从mysql字段中获取一行数据,javascript,mysql,sql,node.js,Javascript,Mysql,Sql,Node.js,因此,我有一个MySQL数据库,在“main”表上有以下字段: 这只是一个例子来说明我真正的问题: 我使用以下代码片段查询此数据库: // getJson router.get('/getJson', async function(req, res) { var objs = [] ; res.setHeader('Content-Type', 'text/plain' ); try { var querySql = 'SELECT id,name,age,photos

因此,我有一个MySQL数据库,在“main”表上有以下字段:

这只是一个例子来说明我真正的问题: 我使用以下代码片段查询此数据库:

 // getJson
 router.get('/getJson', async function(req, res) {
  var objs = [] ;
  res.setHeader('Content-Type', 'text/plain' );

  try {

 var  querySql = 'SELECT id,name,age,photos from main';

  var result = await pool.query( querySql )
  Object.keys(result).forEach(function(key) {
    var row = result[key] ; 
objs.push({"uid":row.id,"prevDesc":row.name,"identifier":row.age,"title":row.photos});}
    });
  res.end( JSON.stringify(objs) );
    } catch(err) {
   console.log(err);
 });
我的问题如下: 使用类似这样的查询查询数据库后,我得到以下结果:

    3 John 22 photo1.jpg
    3 John 22 photo2.jpg
    3 John 22 photo3.jpg
    3 John 22 photo4.png
    72 Diane 31 photo1.jpg
    72 Diane 31 photo2.png
    ...
    ...
等等。我的问题是:如何才能从每一行/个人资料中只获得第一张照片?我的意思是:

     3 John 22 photo1.jpg
     72 Diane 31 photo1.jpg
     33 Doe   26 photo1.png
我想提到的是,我正在使用NodeJS+ExpressJS。 谢谢你的帮助

使用聚合可以获得一张照片:

select id, name, age, min(photo)
from t
group by id, name, age;

除非有另一列指定排序,否则没有第一张照片。

如何定义第一张照片?SQL表表示无序集。除非列定义了first,否则没有“first”。所以…这个问题没有解决方案。如果只有这些列,您的问题在此表中无法解决。这就像询问图像中的像素数或此人的母语。该信息不在表中。好的开始是使用带有主键和自动增量选项的id列,或者使用带有更新当前时间戳选项的datetime列。。然后,您应该能够识别组中的第一个foto。。
select id, name, age, min(photo)
from t
group by id, name, age;