我正在处理文件/图像数据库。我有一个表索引文件名并将它们附加到“专辑”
FILES TABLE
file_id | file_name | album_id
1 | image x | 2
2 | image y | 2
第二个表存储文件的位置和各种大小
SOURCE TABLE
source_id | file_id | source_size | source_url
1 | 1 | original | //...
2 | 1 | thumbnail | //...
3 | 2 | original | //...
4 | 3 | original | //...
目前,“source_size”列被列为文本(原始、缩略图、预览等)。
我正在努力查询具有 source_size 首选项的表,同时仍返回该专辑中的所有文件。
到目前为止,它看起来像这样:
SELECT
f.*, s.*
FROM source s
INNER JOIN files f ON f.file_id=s.file_id
WHERE f.album_id="2"
GROUP BY s.file_id
ORDER BY FIND_IN_SET(s.source_size,"thumbnail, original") DESC
我希望它首先以缩略图格式返回文件的 source_id,但如果失败,则只需返回找不到匹配项的原始大小文件。
在未来的查询中,它可能会优先选择原件或预览。