私はファイル/画像データベースに取り組んでいます。ファイル名にインデックスを付けて「アルバム」に添付するテーブルが1つあります
FILES TABLE
file_id | file_name | album_id
1 | image x | 2
2 | image y | 2
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 をサムネイル形式で返したいのですが、失敗すると、一致するファイルが見つからない元のサイズのファイルが返されます。
今後のクエリでは、オリジナルまたはプレビューが優先される可能性があります。