我的数据库中有用户上传的照片记录。他们可以将上传的其中一张照片指定为封面照片。
我想查询我的数据库为每个用户名返回一张照片。如果他们有封面照片,请退回那张。如果没有,请拉一张普通照片。指定封面照片的列是tinyint,长度为1。该列是“0”(不是封面照片)或“1”(封面照片)。
我有以下内容可以返回用户名列表的所有照片
$usernames = array('bob', 'ted', 'jim');
$usernames = implode( "', '", $usernames );
$query = "SELECT * FROM Photos WHERE username IN('$usernames')";
但我需要将它与以下内容结合起来,如果有一个用户名,它会得到一张封面照片,如果没有一个用户名,它会得到一张普通照片。
$query = "SELECT * FROM Photos WHERE username = 'bob' ORDER BY cover DESC LIMIT 1";
我想我需要使用 GROUP BY 功能,但我不知道如何设置它。有什么建议么?
列是 id(bigint)、name(varchar(255))、cover(tinyint)、username(varchar(30))