2017-01-29 3 views
-3

, пожалуйста, мне нужна помощь. Если у меня есть таблица MYSQL, которая выглядит, как в изображении ниже, например:Обновление таблицы MYSQL путем сравнения столбцов

Full Name  Customer _ Type Referrer 
Wayne Brown Standard  Neil White 
Neil White Standard  Wayne Brown 
Gordon Smith Standard  Neil White 
Rukky Dick Standard  Neil White 
Dorothy Ann Standard  Tracy Cool 
Tracy Cool Standard  Neil White 
Anthony Josh Standard  Neil White 

Как написать заявление UPDATE, чтобы изменить кого-то, как тип клиента Нил Уайт в «премиум», потому что он назвал 5 или более человек?

Я пробовал этот код, но это не дает мне результата.

Update customers set customer_type = “Premium” where full_name = (select referrer from customers having count(referrer) >= 5) 

спасибо.

+0

Пожалуйста, пост код здесь, как обычный текст, а не изображения, которые могут быть трудно читать, не может быть копия-вставили, чтобы помочь тестовый код или использовать в ответах , и враждебно относятся к тем, кто использует программы для чтения с экрана. Вы можете изменить свой вопрос, чтобы добавить код в свой вопрос. Используйте кнопку '{}' для форматирования любых блоков кода или отступов с четырьмя пробелами для того же эффекта. – tadman

+1

Вы должны использовать 'COUNT()' (возможно, с HAVING) или 'num_rows()' и 'UPDATE'. –

ответ

0

Попробуйте сделать следующее:

UPDATE `your_table` as t1 
    INNER JOIN (select count(*) as `total` 
      from `your_table` as t2 
      where t2.`full_name_customer`= t1.`full_name_customer` 
      group by t2.`referrer` 
    ) as t3 
SET`full_name_customer`='Premium' 
WHERE t3.total >= 5 
Смежные вопросы