Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

Έχω εναν πίνακα που περιέχει ονόματα και κωδικούς.

Θέλω στην περίπτωση που το ονομα υπάρχει δύο φορές μόνο τότε να "κολλάει" στο τελος ο κωδικός του.

Δλδ αν έχω

1) Μνήμη kingston 1800MHz

2) Μνήμη kingston 1800MHz

3) Μνήμη kingston 1333MHz

 

Να μετατραπούν τα ονόματα σε:

1) Μνήμη kingston 1800MHz

2) Μνήμη kingston 1800MHz 000261

3) Μνήμη kingston 1333MHz

 

Μπορείτε να σκεφτείτε κατι ώστε να γίνει αυτό; Έστω και με χρήση php (αν δεν μπορεί να γίνει μονο με sql ερωτημα);

Δημοσ.

Δεν μπορώ να σκεφτώ κάτι γρήγορο με SQL...

 

 

Αντιθέτως, γρήγορα μου έρχεται ότι είναι λάθος το table. 

 

 

Έχω εναν πίνακα που περιέχει ονόματα και κωδικούς.

 

 

άλλο column τα ονόματα, άλλο οι κωδικοί. 

 

Ακόμα καλύτερα, ένα table με "ονόματα" (γιατί vendors ή manufacturers είναι) και ένα άλλο με κωδικούς και με ξένο κλειδί από αυτό με τα "ονόματα". 

Δημοσ.

Δεν καταλαβα τι εννοεις προφανώς είναι σε διαφορετικό column μεταξύ τους. Υπάρχουν και αλλα columns τα οποια δεν παίζουν ρόλο στο ερωτημα μου.

Δημοσ.

Ορίστε, αυτό το query θα κάνει αυτό που θες σε περίπτωση που το ίδιο όνομα υπάρχει πάνω από 1 φορά στις εγγραφές.

UPDATE products 
JOIN (SELECT name FROM products GROUP BY name HAVING COUNT(name) > 1) 
dup ON dup.name = products.name
SET products.name = CONCAT(products.name, ' ', products.code)
Δημοσ.

Δεν καταλαβα τι εννοεις προφανώς είναι σε διαφορετικό column μεταξύ τους. Υπάρχουν και αλλα columns τα οποια δεν παίζουν ρόλο στο ερωτημα μου.

 

vendors: id, name

products: id, vendor_id (ξένο κλειδί), name, ....

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...