Добавить информацию в MySQL - PullRequest
0 голосов
/ 05 июля 2010

У меня есть таблица

id_user, hour, medition  
1 0  100  
1 1  101  
1 14 102  
2 5  108  
2 17 103

Как мне заполнить несуществующие часы значением 0 для любого пользователя?
пример

1 0 100  
1 1 101  
1 2 0  
1 3 0  
...

Ответы [ 3 ]

2 голосов
/ 05 июля 2010

Вы не должны этого делать, так как это избыточно.Добавляйте только записи, где у кого-то есть часы.В вашей программе просто закодируйте его так, чтобы, если запись не была найдена, тогда было ноль часов.Например, в PHP:

$row = mysql_fetch_array(mysql_query("select * from myTable where id_user = 1 and hour = 3;"));
if (!$row) $hours = 0;
else $hours = $row['medition'];
1 голос
/ 05 июля 2010

построить таблицу часов, заполнить ее числами от 1 до 24, а затем использовать ее для запроса внешнего соединения к вашей основной таблице - заменить нули на 0

изменить, чтобы добавить быстрый пример:

SELECT id_user, hour, NVL(medition,0)
FROM `hours` as h
LEFT JOIN `myTable`
    ON `hours`.`hour` = `myTable`.`hour`
0 голосов
/ 05 июля 2010

Ознакомьтесь с моим решением для аналогичной проблемы с датами в;

Выберите все месяцы в пределах данного диапазона дат, включая месяцы с 0 значениями

Вы можете создатьТаблица часов, как предложил Рэнди, вместо дат, которые я создал, должна быть достаточно простой, чтобы изменить запрос так, чтобы он возвращал нужные вам данные ...

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...