Выберите наиболее конкретную строку в MySQL с подстановочными знаками - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть таблица ABR с тремя столбцами: два значения поиска, A и B и результат Result.Я хочу, чтобы результат был возвращен с учетом A и B

Но для некоторых значений A столбец B может быть подстановочным знаком.В этом случае мне нужна самая конкретная строка.

Я не могу понять оператор MySQL, хотя - я нашел один, но он был длиной 7 строк и имел 5 = и два IF, должен быть лучший способ.

A   B   Result
1   *   First
2   *   Second
2   1   Third
2   2   Fourth
3   *   Fifth

Example wanted results:
A=1, B=5 -> First
A=1, B=0 -> First
A=2, B=2 -> Fourth
A=2, B=4 -> Second
A=3, B=7 -> Fifth

Обратите внимание, что значения столбцов могут измениться позже: мы можем добавить дополнительные строки для A и B или удалить значения.Жесткое кодирование в SQL недопустимо.

1 Ответ

0 голосов
/ 01 декабря 2011
SELECT Result
    FROM ABR
    WHERE A = @LookupA
        AND (B = @LookupB OR B = '*')
    ORDER BY B DESC LIMIT 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...