· 8 years ago · Jan 06, 2018, 04:22 AM
1SQL query:
2
3CREATE DEFINER=`xxxxxxxxxx` PROCEDURE `MediaByPreferedCategory`(category1 VARCHAR(1000), category2 VARCHAR(1000),category3 VARCHAR(1000)) BEGIN DROP TABLE IF EXISTS `medias_for_user`; DROP TABLE IF EXISTS `medias_for_user_tmp`; CREATE TEMPORARY TABLE `medias_for_user` ( `media_id` INTEGER(11), `publication_date` DATETIME default '1970-01-01 00:00:00' NOT NULL, `cat` INTEGER(11), UNIQUE (`media_id`) )Type=MEMORY; CREATE TEMPORARY TABLE `medias_for_user_tmp` ( `media_id` INTEGER(11), `publication_date` DATETIME default '1970-01-01 00:00:00' NOT NULL, `cat` INTEGER(11), UNIQUE (`media_id`) )Type=MEMORY; set @s:= CONCAT("INSERT INTO medias_for_user(media_id, publication_date,cat) SELECT DISTINCT m.id, m.publication_date,1 FROM media as m INNER JOIN `categorizable` as catz ON m.id=catz.model_id AND catz.categorizable_model = 'Media' AND catz.category_id in (",category1,") LIMIT 3;"); PREPARE stmt FROM @s; EXECUTE [...]
4
5MySQL said:
6
7#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Type=MEMORY;
8CREATE TEMPORARY TABLE `medias_for_user_tmp`
9(
10 `media_id` INTEGER' at line 11