Mysql 查询从图像数组中检索单个图像?

Mysql query to retrieve single image from an array of images?

Table 存储图片数组:

`products` and  `products_photos`

`products` includes only `id` field
`products_photos` includes `product_id` and `filename`

Table 值:

products 
-------- 
id-6

id-7


products_photos
---------------
6 - filename1

6 - filename2

7 - filename3

在这两个 table id 6 中包含 2 张图像,但我只需要从中获取一张图像。如何在 mysql 或 laravel.

中编写查询

您可以限制查询以获得单一结果

SELECT * FROM products_photos WHERE product_id = 6 ORDER BY id LIMIT 1;

这将只为 id = 6 产品提供单张图片

要检索所有数据,请使用 group by

SELECT * FROM GemSellerPortal.products pr 
LEFT JOIN GemSellerPortal.products_photos ph
ON ph.product_id = pr.id
GROUP BY pr.id

如果你想获取产品的最新(最后添加)图片,那么你可以通过以下方式

注意:不要使用 *,而是使用精确的列,以便您的查询执行得更快。

SELECT * FROM products_photos WHERE product_id = 6 ORDER BY products_photos.id DESC LIMIT 1;

如果您想获取产品的第一张(旧添加的)图像,则可以执行以下方式

SELECT * FROM products_photos WHERE product_id = 6 ORDER BY products_photos.id ASC LIMIT 1;

更新:查询得到所有记录组的列表

SELECT MAX(id) as id, photo_name FROM products_photos GROUP BY photo_name

如果您有多个列并且也想获取最新的记录,那么就去做这个

例如。考虑到您有 description 列并且想要获取 MAX(最新)内容而不是使用 MAX,如果您需要最旧的使用 MIN

SELECT MAX(id) as id, photo_name, MAX(description) as description FROM products_photos GROUP BY photo_name