Javascript 从mysql字段中获取一行数据
因此,我有一个MySQL数据库,在“main”表上有以下字段: 这只是一个例子来说明我真正的问题: 我使用以下代码片段查询此数据库: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
// 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;