+------+---------+-------+
| id | name | prefer|
+------+---------+-------+
| 11 | Ivan | null |
+------+---------+-------+
| 12 | Petr | 1 |
+------+---------+-------+
| 12 |Petruccio| null |
+------+---------+-------+
выбираем имя по имеющемуся списку ид. если есть одинаковые ид надо брать имя у которого prefer=1. если ид уникален то у него prefer null - то есть простое условие where prefer IS NOT NULL - не прокатит.
SELECT * FROM mytable
WHERE id = 12
ORDER BY prefer DESC
LIMIT 1
http://sqlfiddle.com/#!9/0116e7/1/0
SELECT *
FROM table
WHERE (id,COALESCE(prefer, -1)) IN ( SELECT id, MAX(COALESCE(prefer, -1))
FROM table
GROUP BY id
);
select id, ifnull(max(if(prefer=1,name,NULL)), max(name))
from tabPref
group by id
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При обновлении Mysql возникла такая проблемаЗависимости пакетов которые не устанавливаются и не удаляются
Нужно вывести item_id и price_in_rubPrice_in_rub – стоимость rub, считается как price из таблицы items умноженная на курс валюты на максимальную дату выставления...
Есть таблица с дубликатами в MySQL: (по полю name)