Πως αφαιρώ ότι εχει ένα πεδίο και το προσθέτω σε ένα άλλο χωρίς να χαθούν αυτα που εχει?

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
B_Dark
Δημοσιεύσεις: 321
Εγγραφή: 27 Ιαν 2006 04:45
Τοποθεσία: Center Of Athens

Πως αφαιρώ ότι εχει ένα πεδίο και το προσθέτω σε ένα άλλο χωρίς να χαθούν αυτα που εχει?

Δημοσίευση από B_Dark » 19 Ιουν 2014 03:39

Καλησπέρα,

Αφού έχω βρει αυτα που αντιστοιχούν με μια συγκεκριμένη στήλη (meta_key "contact") του πίνακα wp_postmeta, θέλω να πάρω (και να μην υπαρχει πλέων εκεί τπτ) από την στήλη "meta_value" ότι εχει καταγεγραμμένο και να το προσθέσω στην στήλη "post_contect" που εχει στο πίνακα "wp_post".

Σε κάθε αντίστοιχο "post_contect" εχει αρκετα πράγματα καταγεγραμμένα και δεν θέλω να τα χάσω, θέλω ότι πάρει από το "meta_value" να το προσθέσει απλά στο τέλος της οποιαδήποτε καταχώρισης εχει μέσα το κάθε "post_contect". ειναι εφικτό κάτι τετοιο?
Music is the spirit of love, happiness and life...

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Πως αφαιρώ ότι εχει ένα πεδίο και το προσθέτω σε ένα άλλο χωρίς να χαθούν αυτα που εχει?

Δημοσίευση από burnmind » 19 Ιουν 2014 12:07

Κατ' αρχήν, αν και αυτονόητο, πριν δοκιμάσεις οτιδήποτε πάρε ένα backup τη βάση σου και "παίξε" εκεί.

Δεν έχω κάποια εγκατάσταση WP πρόχειρη αυτή τη στιγμή για να δω το structure των tables που αναφέρεις και να τρέξω κάποιο δοκιμαστικό query, αλλά δες το παρακάτω παράδειγμα:

Έστω ότι έχεις τους εξής 2 πίνακες:

Κώδικας: Επιλογή όλων

CREATE TABLE IF NOT EXISTS `test1` (
  `id1` int(11) NOT NULL AUTO_INCREMENT,
  `col1` varchar(100) NOT NULL,
  PRIMARY KEY (`id1`)
)

INSERT INTO `test1` (`id1`, `col1`) VALUES
(1, '123'),
(2, '456');

CREATE TABLE IF NOT EXISTS `test2` (
  `id2` int(11) NOT NULL AUTO_INCREMENT,
  `col2` varchar(300) NOT NULL,
  PRIMARY KEY (`id2`)
)

INSERT INTO `test2` (`id2`, `col2`) VALUES
(1, 'abc'),
(2, 'def');
Αν τρέξεις το παρακάτω query, τα values του col2 θα προστεθούν στο τέλος του col1 (εφόσον είναι ίδιο το id) και θα αφαιρεθούν από το col2 (θα παραμείνει το record, αλλά θα είναι κενό):

Κώδικας: Επιλογή όλων

UPDATE test1, test2
SET test1.col1 = CONCAT(test1.col1, test2.col2), test2.col2 = ''
WHERE test1.id1 = test2.id2
Πολύ πιθανό να υπάρχει και πολύ καλύτερη λύση, οπότε ψαξ' το λίγο.

Άβαταρ μέλους
B_Dark
Δημοσιεύσεις: 321
Εγγραφή: 27 Ιαν 2006 04:45
Τοποθεσία: Center Of Athens

Πως αφαιρώ ότι εχει ένα πεδίο και το προσθέτω σε ένα άλλο χωρίς να χαθούν αυτα που εχει?

Δημοσίευση από B_Dark » 20 Ιουν 2014 02:14

burnmind έγραψε:Κατ' αρχήν, αν και αυτονόητο, πριν δοκιμάσεις οτιδήποτε πάρε ένα backup τη βάση σου και "παίξε" εκεί.

Δεν έχω κάποια εγκατάσταση WP πρόχειρη αυτή τη στιγμή για να δω το structure των tables που αναφέρεις
εννοείτε!! αυτο ειναι το structure
http://codex.wordpress.org/Database_Des ... :_wp_posts
http://codex.wordpress.org/Database_Des ... p_postmeta
Music is the spirit of love, happiness and life...

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Πως αφαιρώ ότι εχει ένα πεδίο και το προσθέτω σε ένα άλλο χωρίς να χαθούν αυτα που εχει?

Δημοσίευση από burnmind » 20 Ιουν 2014 02:35

burnmind έγραψε:και να τρέξω κάποιο δοκιμαστικό query
:)

Δοκίμασες να το κάνεις να δουλέψει με τη λογική που σου έγραψα πριν;

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες