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
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