Немного странно, я хочу написать запрос MySQL, который будет получать результаты из таблицы, но предпочитают одно значение столбца над другим, т.е.MySQL получить строки, но предпочитают одно значение столбца над другим
id name value prioirty
1 name1 value1 NULL
2 name1 value1 1
3 name2 value2 NULL
4 name3 value3 NULL
Итак, здесь name1 имеет две записи, но у одного есть prioirty из 1. Я хочу получить все значения из таблицы, но предпочитаю значения с любым приоритетом, которым я пользуюсь.
Результаты, которые я бы после того, как будет
id name value prioirty
2 name1 value1 1
3 name2 value2 NULL
4 name3 value3 NULL
Эквивалентный способ сказать, что это было бы «получить все строки из таблицы, но предпочитают строки с приоритетом х».
Это немного недооценено.«Предпочитаете» вы имеете в виду: «если строка существует с приоритетом x, то извлекайте эту строку, иначе ... что?» «В противном случае» может быть несколько разных определений в зависимости от того, может ли быть несколько таких строк «в противном случае». Вам нужно полностью определить желаемые результаты «в противном случае». –
Otheriwse возвращает другую строку с тем же именем, но с prioirty из NULL. Как минимум одна строка с именем1, name2, name3 всегда будет существовать в таблице. Бывает, что могут быть и другие версии (с тем же именем), но с разными значениями prioirty. Я пытаюсь получить то, что мне нужно, не выполняя два запроса (один для prioirty = null и один для prioirty = x), а затем сравнение двух наборов результатов. Cheers, Gaz. – Gaz
Идея на это: http://stackoverflow.com/questions/1848693/mysql-get-rows-but-prefer-one-column-value-over-another – 2013-07-15 20:41:04