2012-05-29 49 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

的問題。希望你喜歡加入未來的類似問題的子選擇:) –

相關問題