SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.12.2012 14:51:29

dima_s
Участник
Зарегистрирован: 26.12.2012
Сообщений: 1

Сравнение строк в mysql

Добрый день. Не получается разобраться как в таблице такого вида
              name                            model        qty      is_visible   
...........................................................................................
041312.101-01                       041312.101      86               0
041312.101-02                       041312.101      5                  1
041312.101-09                       041312.101      2                  0
041312.102-09                       041312.102      3                  1
041312.102-06                       041312.102      1                  0
041312.102-02                       041312.102      2                  0
041312.102-01                       041312.102      79               0
041312.103-03                       041312.103      1                  0
041312.103-26                       041312.103      17                1

сделать сравнение по полю model, чтобы поле is_visible было 1 в строке с наибольшим qty этой модели либо у случайной строки модели если qty равны

то есть чтобы к примеру у этой модели is_visible было у первой строки, т.к. qty 86 самое большое
     name                            model                 qty            is_visible   
...........................................................................................
041312.101-01                       041312.101      86                0
041312.101-02                       041312.101      5                  1
041312.101-09                       041312.101      2                  0

Может кто-то подскажет в какую сторону копать?)

Неактивен

 

#2 28.01.2013 04:14:15

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Сравнение строк в mysql

Начать, видимо, можно с того, чтобы сделать выборку всех строк той модели, у которой наибольший qty (если наибольший qty повторяется в нескольких моделях, то будет выбрана любая из тех моделей, у кого он наибольший).
Это можно сделать, например, так (результат должен быть одинаковый во всех трёх запросах):

select * from t where model = ( select model from t order by qty desc limit 1 );
или так
select t.* from t JOIN ( select model from t order by qty desc limit 1 ) sub_t using(model)
или так
select t.* from t JOIN ( select model from t order by qty desc limit 1 ) sub_t ON t.model = sub_t.model;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson