arc Δημοσ. 2 Αυγούστου 2014 Δημοσ. 2 Αυγούστου 2014 (επεξεργασμένο) Καλημέρα. Λόγω του προχωρημένου τους ώρας, εχω σκαλώσει σε κάτι και δεν μπορώ να ξεκολλήσω. Καμία ιδέα; Έχουμε ένα mysql πίνακα (π.χ. με ονομα tilefona) όπου μεσα εχει 4 columns, ένα id, ένα onoma, και δυο νουμερα. Βλ παρακάτω ---------------------------------------------- | id | onoma | noumero1 | noumero2 | ---------------------------------------------- | 1 | kostas | 44 | 55 | | 2 | stelios | 66 | 77 | | 3 | eleni | 88 | 99 | | 4 | litsa | 22 | 33 | ---------------------------------------------- Ψάχνω λοιπον το sql statement οπου θα επιλεγουν ΔΥΟ τυχαια νουμερα (απο noumero1 και noumero2 - αυτά ειναι το σημείο τυχαιοτητας) και θα μου απεικονιστεί το ονομα και νουμερο. Δηλαδή θέλω να βγει κατι σαν --------------- | stelios | 77| | eleni | 88| --------------- ή αν το τρέξω πάλι να βγει π.χ. --------------- | kostas | 44| | eleni | 88| --------------- | stelios | 44| | eleni | 88| Με php το έφτιαξα με πολλαπλά query αλλά θελω να το φτιάξω απευθείας απο mysql για λόγους ταχύτητας. Εχει κάποιος κάποια ιδεα; Ευχαριστω εκ των προτέρων Επεξ/σία 2 Αυγούστου 2014 από arc
antonl Δημοσ. 2 Αυγούστου 2014 Δημοσ. 2 Αυγούστου 2014 Mysql έχω χρόνια να γράψω αλλά σε oracle το χα κάνει μέσω hash συναρτήσεων. Δηλ. στο select statement πετάω ένα επιπλέον πεδίο με το hash του (πχ) ονόματος concatenated με current date, κάνω sort βάσει αυτού κι επιλέγω τα 2 πρώτα records. Φαντάζομαι θα μπορούσες να χρησιμοποιήσεις κάποια απ αυτές τις συναρτήσεις.
geomagas Δημοσ. 2 Αυγούστου 2014 Δημοσ. 2 Αυγούστου 2014 select t1.onoma,t1.noumero1 from tilefona t1 join (select noumero1 from tilefona order by rand() limit 1) t2 on (t1.noumero1=t2.noumero1) union select t1.onoma,t1.noumero2 from tilefona t1 join (select noumero2 from tilefona order by rand() limit 1) t2 on (t1.noumero2=t2.noumero2)Ο stelios | 44 από που προκύπτει;
arc Δημοσ. 2 Αυγούστου 2014 Μέλος Δημοσ. 2 Αυγούστου 2014 Ευχαριστώ για τις απαντήσεις. Τώρα δεν είμαι μπροστά στο τερματικό, οπότε θα το δοκιμάσω αργότερα. Το stelios 44 επρεπε να ειναι kostas 44
geomagas Δημοσ. 2 Αυγούστου 2014 Δημοσ. 2 Αυγούστου 2014 Μήπως kostas 55; Διότi το 44 του kostas και το 88 της eleni είναι και τα δύο moumero1.
arc Δημοσ. 3 Αυγούστου 2014 Μέλος Δημοσ. 3 Αυγούστου 2014 Μια χαρά τα λες και γενικά μου λειτουργεί το sql που έγραψες. Το μόνο πρόβλημα που βρήκα ειναι οτι αν κάποιο νουμερο επαναλαμβάνεται στην ίδια στήλη παρακάτω της τυχαίας επιλογής, το εμφανίζει και αυτό. Αυτό σημαίνει οτι κατά περιπτωση εμφανίζει 3-4 ή περισσότερα αποτελέσματα. Βέβαια αυτό που έγραψες με ξεκόλλησε και έφτιαξα έυκολα και το παραπάνω. Σε ευχαριστώ πολύ
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα