В базе имеется, столбец с id определенных тем, нужно реализовать триггер, который при каждом добавлении записи, будет в этой таблице менять счетчик, а id тем добавляются через запятую, чтобы было удобно сделать выборку с помощью
IN.
Подскажите пожалуйста, как сделать правильную конкатенацию, либо сделать правильно другим способом.
Версия MySQL 5.6.
Таблицы:
iCreateTable('posts', array(
'id' => 'INT(250) PRIMARY KEY AUTO_INCREMENT',
'title' => 'VARCHAR(200)',
'text' => 'LONGTEXT',
'authorId' => 'INT(250)',
'themesId' => 'VARCHAR(255)',
'authorIdEdit' => 'INT(250)',
'date' => 'DATETIME',
'dateEdit' => 'DATETIME'
));
iCreateTable('themes', array(
'id' => 'INT(250) PRIMARY KEY AUTO_INCREMENT',
'title' => 'TEXT',
'low_title' => 'TEXT',
'count_posts' => 'INT(250) DEFAULT 0 NOT NULL',
'authorId' => 'INT(250)',
'authorIdEdit' => 'INT(250)',
'date' => 'DATETIME',
'dateEdit' => 'DATETIME'
));
Создание триггера:
DELIMITER $$
CREATE TRIGGER incCountPostsTheme
BEFORE INSERT ON posts
FOR EACH ROW
BEGIN
@Expression = 'UPDATE themes SET count_posts = count_posts + 1 WHERE id IN (' + NEW.themesId + ');';
PREPARE myquery FROM @Expression;
EXECUTE myquery;
END; $$
DELIMITER ;