добавление новой строки, когда конкретная комбинация недоступна, в противном случае обновите поле - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть таблица со следующей структурой

id         int             auto increment, primary key
uid        int             (comment: userid)
cdt        date/time       (comment: current date)
hits       int             (comment: no. of hits)

Теперь мне нужен запрос, такой как

для определенной комбинации 'uid' и 'cdt', если есть доступная строка, то обновите попадания (т.е. добавьте 1 к попаданиям), в противном случае добавьте новую строку со значениями 'uid' и 'cdt' и совпадения установить на 1

Позвольте мне прояснить ситуацию с примером

скажем, uid = 01 и cdt = 2010-01-01, если эта комбинация uid и cdt недоступна в таблице, тогда следует вставить новую строку, в противном случае значение попаданий должно быть обновлено

Как этого добиться?

1 Ответ

0 голосов
/ 06 сентября 2011

Вы можете сделать это в два этапа:

Первый:
Запросите БД, чтобы узнать, присутствует ли эта конкретная запись:

SELECT id FROM your_table 
WHERE uid = your_user_id AND cdt = your_date 

Второе:
Если предыдущий запрос возвращает ноль строк:

INSERT INTO your_table
(uid, cdt, hits)
SELECT your_user_id, your_date, 1

остальное:

UPDATE your_table
SET hits = hits + 1
WHERE uid = your_user_id AND cdt = your_date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...