我有两个表:user和projects,两者之间存在一对多的关系。
projects表具有status包含用户项目状态的字段。
status可以是以下之一:
launched, confirm, staffed, overdue, complete, failed, ended
我想将用户分为两类:
- 项目处于
launched阶段的用户 - 拥有非
launched状态项目的用户。 
我正在使用以下查询:
SELECT DISTINCT(u.*), CASE 
    WHEN p.status = 'LAUNCHED' THEN 1
    ELSE 2
    END as user_category
FROM users u
LEFT JOIN projects p ON p.user_id = u.id
WHERE (LOWER(u.username) like '%%%'
    OR LOWER(u.personal_intro) like '%%%'
    OR LOWER(u.location) like '%%%'
    OR u.account_status != 'DELETED'
AND system_role=10 AND u.account_status ='ACTIVE')
ORDER BY set_order, u.page_hits DESC
LIMIT 10
OFFSET 0
我面临以下情况的重复记录:
如果用户的项目状态launched为overdue,complete或failed,则该用户被记录两次,因为该用户的两个条件CASE都满足。
请提出一个查询,其中有任何项目处于launched状态的用户将其user_category设置为1. 同一用户不应重复使用user_category 2。