Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> UPDATE - złożone zapytanie
dziolecki
post 27.04.2017, 15:14:01
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.04.2017

Ostrzeżenie: (0%)
-----


Witam, potrzebuję wykonać złożone zapytanie do bazy danych.
Poniżej przedstawiam sytuację.

Moja baza danych prezentuje się tak:

products_description:
  1. +------------+---------------+
  2. | products_id| products_name |
  3. +------------+---------------+
  4. | 5 | Regał A |
  5. | 6 | Regał B |
  6. +------------+---------------+
  7.  


products_to_categories:
  1. +------------+---------------+
  2. | products_id| categories_id |
  3. +------------+---------------+
  4. | 5 | 2 |
  5. | 6 | 3 |
  6. +------------+---------------+


Chcę masowo zmienić kategorie wszystkich produktów, które w nazwię w tabeli products_description mają "Regał", czyli zmienić ich kategorie w bazie tabeli products_to_categories na categories_id = 46.

  1. UPDATE `products_to_categories` SET categories_id = 46 WHERE ....
?
Jakieś wskazówki?

Pozdrawiam
Go to the top of the page
+Quote Post
trueblue
post 27.04.2017, 15:17:40
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Wskazówka: Google
http://stackoverflow.com/questions/9957171...pdate-statement


--------------------
Go to the top of the page
+Quote Post
dziolecki
post 27.04.2017, 15:27:37
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.04.2017

Ostrzeżenie: (0%)
-----


Idąc tym tropem, napisałem coś takiego
  1. UPDATE products_to_categories JOIN products_description ON products_to_categories.products_id = products_description.products_id
  2. SET products_to_categories.categories_id = 46
  3. WHERE products_description.products_name LIKE 'Regał%'


Zwraca mi błąd: #1062 - Duplicate entry '408-46' for key 'PRIMARY'
Go to the top of the page
+Quote Post
trueblue
post 27.04.2017, 15:36:03
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Co oznacza, że po aktualizacji miałbyś dwa te same produkty przypisane do tej samej kategorii, a na tych dwóch polach jest założony indeks unikalny.
UPDATE IGNORE, a potem te, które nie zostały zaktualizowane (z id=46) trzeba wyrzucić.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 02:03