2012-05-29 50 views
0

尝试选择所有列,但避免使用多于1个相同用户标识。MySQL:避免选择具有相同用户标识的列

$result = mysql_query("select *, DISTINCT userid from ringtones where deletedbyuser='0' and (lang='$lang' or lang='en') order by id desc limit 10"); 

请大家帮忙。

表结构:

id int(10) 
userid int(10) 
artist varchar(100) 
title varchar(100) 
lang varchar(2) 
public int(1) 
status int(1) 
deletedbyuser int(1) 
+0

'DISTINCT'适用于整个选择。你不能清楚地选择一列。 –

+0

你能解释一下你的表格结构吗?你想要达到什么样的结果 – xbonez

+0

你可能想要的是按用户标识对结果集进行某种分组。尽管需要更多关于你的表格结构和你的目标的信息。 –

回答

3

可以

select r.* from ringtones r 
    inner join (select MIN(id) as id, userid from ringtones 
         where deletedbyuser='0' and (lang='$lang' or lang='en') 
         group by userid) s 
    on r.id = s.id 
order by r.id desc 
limit 10 

,这将挑选第一个被添加,如果有不止一个。

+0

完美的作品...非常感谢... –

+0

的问题。希望你喜欢加入未来的类似问题的子选择:) –

相关问题