2016-01-13 56 views
0

我有一個SQLite表,列number可能有重複。如何選擇不同的記錄?

如何選擇按數字獲得不​​同行的記錄?

SELECT 
    contacts_table._id AS _id, 
    title, title_short, 
    DISTINCT number, 
    note, 
    categories, 
    contacts_categories_name, 
    contact_id, 
    contacts_categories_catalog_id 
FROM contacts_table 
LEFT OUTER JOIN contacts_categories_table 
    ON(contacts_categories_contact_id = contact_id 
     AND contacts_categories_current_user = current_user) 
WHERE ((current_user = ? AND saved =? 
    AND (title LIKE ? OR number LIKE ? OR note LIKE ?)) 
    AND (contacts_categories_catalog_id = ?)) 
ORDER BY 
    contacts_categories_name = 'UNSORTED' DESC, 
    contacts_categories_name ASC, 
    title ASC 
+0

那其他列的值?當有多個具有相同'號碼'的行時,他們應該從哪個行來? –

+0

@CL。除了「_id」和「contacts_categories_catalog_id」,其他所有列都是相同的。因此,考慮第一行並忽略其他行爲將會很好。對於particulate查詢它不會metter,其中'contacts_categories_catalog_id'將被返回,任何填充適合只要它存在 – Yarh

回答

0

只需添加GROUP BY:

SELECT 
    MIN(contacts_table._id) AS _id, 
    title, 
    title_short, 
    number, 
    note, 
    categories, 
    contacts_categories_name, 
    contact_id, 
    MIN(contacts_categories_catalog_id) 
FROM ... 
GROUP BY 
    number 
ORDER BY ...;