У меня есть таблица y
, в которой есть два столбца a
и b
Записи:
a b
1 2
1 3
1 4
0 5
0 2
0 4
Я хочу получить 2,3,4, если я ищу столбец a
для 1, и 5,2,4, если я ищу столбец a
.
Итак, если я ищу A для чего-то, что находится в A, (1) я получаю эти строки, и если нет записей A для данного значения, дайте мне значения по умолчанию (a
= '0')
Вот как бы я знал, как это сделать:
$r = mysql_query('SELECT `b` FROM `y` WHERE `a` = \'1\';');
//This gives desired results, 3 rows
$r = mysql_query('SELECT `b` FROM `y` WHERE `a` = \'2\';');
//This does not give desired results yet.
//Get the number of rows, and then get the 'defaults'
if(mysql_num_rows($r) === 0) $r = mysql_query('SELECT `b` FROM `y` WHERE `a` = 0;');
Итак, теперь, когда это достаточно объяснено, как мне это сделать в одном запросе и как насчет проблем с производительностью?
Наиболее используемой частью будет третий запрос, поскольку в a
будут только значения для числа ЕСЛИ вы отклоняетесь от значений по умолчанию.