Ιδεες για γρηγοροτερο query?

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

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

Απάντηση
Άβαταρ μέλους
paink1ller
Δημοσιεύσεις: 865
Εγγραφή: 21 Ιαν 2008 19:51

Ιδεες για γρηγοροτερο query?

Δημοσίευση από paink1ller » 09 Σεπ 2010 09:48

Παιδες προσπαθω να κανω listing ολες τι εγγραφες της βασης που εχουν ιδιο title προιοντος και μεχρι στιγμης το καταφερα μ'αυτο

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

SELECT p.id,p.title,p.code FROM `products` p WHERE (select count(*) from `products` where title=p.title)>1
το οποιο αργει παρα μα παρα πολυ... 1 λεπτο + :-?

Δοκιμασα επισης και αυτο

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

SELECT id, title, code FROM products
WHERE title IN (
    SELECT title
    FROM products
    GROUP BY title
    HAVING count(*) > 1
    )
ORDER BY title
αλλα για καποιο λογο μου κολαει την Mysql και δεν δουλευει! Δεν μπορω να καταλαβω γιατι ομως.

Αν ειχε κανεις κατι καλυτερο να προτινει θα του ημουν ευγνωμων.
Ηobby: Shooting photons

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Ιδεες για γρηγοροτερο query?

Δημοσίευση από nbc » 09 Σεπ 2010 12:02

Αν θέλεις απλά τα ονόματα (distinct) των διπλοεγγραφών με το πλήθος τους

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

SELECT title, count(*) as count FROM `products` GROUP BY title HAVING count > 1
Αν θέλεις πλήρη λίστα με id, κλπ

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

SELECT O.id, O.title, T.count FROM `products` as O JOIN (...) AS T ON O.title=T.title
Αντικατέστησε το ... με το πρώτο statement ως έχει.

Εννοείται, προσθέτεις λοιπά πεδία που επιθυμείς, ταξινόμηση, κλπ.

Άβαταρ μέλους
paink1ller
Δημοσιεύσεις: 865
Εγγραφή: 21 Ιαν 2008 19:51

Ιδεες για γρηγοροτερο query?

Δημοσίευση από paink1ller » 09 Σεπ 2010 12:49

Damn... lightning fast παει!

Eισαι ωραιος, ευχαριστω !
Ηobby: Shooting photons

Απάντηση

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

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

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