2016-04-08 2 views
0

У меня есть таблица mysql, в которой перечислены разделы сайта, к которому принадлежит пользователь, и есть ли у них admin privliges (admin = 1 или admin = 0 и basic = 1 или basic = 0) ,mysql query update first occuration of parameters

Я хочу дать первому пользователю базу данных для поиска каждого раздела прав администратора. Я хочу сделать это через mySQL.

Оттуда и я могу выбрать первого пользователя каждого раздела и предоставить им привилегии администратора?

Так моя таблица выглядит следующим образом, например

SECTION_USER

| --ID-- | --USER_ID-- | --SECTION_ID-- | --ADMIN-- | - BASIC-- |
| - 1-- | ------- 100 ---- | ------------- 999 ---- | ---- 0 ---- ---- | ----- 1 ------ |
| - 2-- | ------- 101 ---- | ------------- 999 ---- | ---- 0 ---- ---- | ----- 1 ------ |
| - 3-- | ------- 102 ---- | ------------- 100 ---- | ---- 0 ---- ---- | ----- 1 ------ |
| - 4-- | ------- 103 ---- | ------------- 100 ---- | ---- 0 ---- ---- | ----- 1 ------ |

Так в основном запрос обновит пользователя 100 админу и пользователь 102 админу, поскольку они первые результаты для секции 999 и секции 100.

+0

Когда вы говорите «первым», какой именно порядок вы имеете в виду? –

ответ

0
update section_user su 
join 
(
    select section_id, min(id) as id 
    from section_user 
    group by section_id 
) tmp on tmp.section_id = su.section_id 
    and tmp.id = su.id 
set admin = 1 

Внутренний выбор получает каждый раздел и первый (MIN) пользователя каждого из них. Если вы присоединитесь к этому результату, вы можете обновить таблицу.