evshi
Новичок
Мне надо проверить, если в таблице user_history у uid (user id) более 10 записей, то найти самую старую по dt, и на место ее записать новую. Если же записей у uid < 10, то сделать insert.
Вот структура таблицы:
CREATE TABLE `user_history` (
`id` int(11) NOT NULL auto_increment,
`uid` int(11) default NULL,
`objId` int(11) default NULL,
`objType` int(11) default NULL,
`dt` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Пытаюсь сделать через IF:
SELECT
IF(
((SELECT COUNT(*) FROM `user_history` WHERE `uid`=3)>10),
1,
(INSERT INTO `user_history` (`uid`) VALUES(99))
)
Но уже на этом шаге вываливается ошибка синтаксиса. Как правильно решить данную задачу?
Вот структура таблицы:
CREATE TABLE `user_history` (
`id` int(11) NOT NULL auto_increment,
`uid` int(11) default NULL,
`objId` int(11) default NULL,
`objType` int(11) default NULL,
`dt` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Пытаюсь сделать через IF:
SELECT
IF(
((SELECT COUNT(*) FROM `user_history` WHERE `uid`=3)>10),
1,
(INSERT INTO `user_history` (`uid`) VALUES(99))
)
Но уже на этом шаге вываливается ошибка синтаксиса. Как правильно решить данную задачу?