【发布时间】:2018-10-29 22:09:27
【问题描述】:
所以我有一个 MySQL 数据库,在“主”表上有以下字段:
Table main: id name age photos
3 John 22 photo1.jpg
photo2.jpg
photo3.jpg
photo4.png
72 Diane 31 photo1.jpg
photo2.png
33 Doe 26 photo1.png
photo2.png
photo3.jpg
这只是说明我真正问题的一个例子: 我正在使用以下代码 sn-p 查询这个数据库:
// 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。 谢谢你的帮助!
【问题讨论】:
-
你如何定义第一张照片? SQL 表代表 无序 集。除非列定义了第一个,否则没有“第一个”。
-
那么……这个问题没有解决办法吗?
-
。 .如果这些是唯一的列,则您的问题在此表上无法解决。这就像询问图像中的像素数或人的母语一样。信息不在表中。
-
好的开始是使用带有主键和 auto_increment 选项的 id 列或带有 on update current_timestamp 选项的 datetime 列。然后你应该能够识别组中的第一张照片..跨度>
标签: javascript mysql sql node.js