Jump to content

[SQL] Insérer une catégorie (50) à tous les produits sauf s'il possède la catégorie 51 et 446


Recommended Posts

Bonjour,

Tout est dans le titre, j'aimerai insérer la catégorie avec l'id 50 à tous les produits sauf s'il possède la catégorie 51 et 446.

Voici ce que j'ai :

Quote

INSERT INTO `ps_category_product` 
SELECT 50, `id_product`, 0 
FROM `ps_product`
WHERE `ps_product`!= 51 AND `ps_product`!= 446 

Cependant j'obtiens ceci :

Quote

#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 'WHERE `ps_product`!= "51" AND `ps_product`!= "446"' at line 3

 

J'ai pas bcp de connaissance en SQL, quelqu'un pourrai m'aider ? J'ai essayé de rajouter des guillemets mais j'obtiens la même erreur

Link to comment
Share on other sites

pour les produits n'étant ni dans 51 ni dans 446 (les 2)

set @p := -1;
insert ignore into ps_category_product (id_product,id_category,position)
select p.id_product, 50, @p := @p+1 as position
from ps_product p
inner join ps_category_product cp on cp.id_product = p.id_product
left join ps_category_product cp51 on cp51.id_product = p.id_product and cp51.id_category = 51
left join ps_category_product cp446 on cp446.id_product = p.id_product and cp446.id_category = 446
where cp51.id_product is null and cp446.id_product is null
group by p.id_product

 

Link to comment
Share on other sites

Merci beaucoup Doekia ! Sa va me faire gagner beaucoup de temps !

J'aimerai également que la catégorie 50 soit la catégorie par défaut.

Du coup j'ai fait ceci :

Quote

UPDATE ps_product
SET id_category_default = '50'
WHERE id_category_default != '51' AND id_category_default != '446'

Quote

UPDATE ps_product_shop
SET id_category_default = '50'
WHERE id_category_default != '51' AND id_category_default != '446'

Mais cela ne semble pas fonctionner...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...