Sunday, September 09, 2007

MySQL

Πριν πολλά πολλα χρόνια ήρθα σε πρώτη επαφή με την SQL (Structured Query Language), η οποία στην αρχή μου φαινόταν δύσκολη, απροσπέλαστο βουνό. Μετά όμως από εντατική ενασχόληση μαζί της κατάλαβα πως είναι just a piece of cake, όταν μάθεις την λογική της δόμησης, και φυσικά ξέρεις τι ψάχνεις λχ. δεν στάθηκε ποτέ δυνατό να ανακτήσω από την στήλη πελάτες το όνομα "μπανάνα".

Δέκα χρόνια μετά, σήμερα δηλ., ξαναήρθα σε δημιουργική επαφή με της SQL, έχοντας αναλάβει ας το πούμε έτσι την υποστήριξη ενός φιλικά προσκείμενου web, στο οποίο ανέκαθεν μου έσπαγαν τα @@ τα spam που υπήρχαν στο guestbook. Έχοντας κάτσει ένα 2ωρο, και μη έχοντας καταφέρει τίποτα ως τώρα, σκέφτηκα πως δεν γέρασα και τόσο για αυτό το κόλπο και ότι κάτι πάει στραβά (το ηθικό συμπέρασμα βγήκε αφού έκανα 2 καταχωρήσεις και δεν τις έβρισκα με τίποτα στη βάση).

Πράγματι αποδείχτηκε το ότι ο αυνάνιος πάροχος του προγράμματος που θα ήθελα να μην αναφέρω ονόματα τώρα, γιατί η πωλήσεις του θα πέσουν στο 0 και θα με κατηγοράει για αυτό για πολύ καιρό) κατάφερε by default να τροποποιήσει ακόμα και τα βασικά που ένας duuhh sql user θα ήξερε να συντάξει σωστά. Ακολουθεί το πιο απλό παράδειγμα και το real time αποτέλεσμα που μου κόστισε 2 ώρες από την ζωή μου και 5 τσιγάρα.

Το παράδειγμα.
κάνω μια εγγραφή στο ενλόγω guestbook σε βάση με username uncle (τα άλλα στοιχεία εισαγωγής όπως contact, comment κλπ. δεν μας ενδιαφέρουν)

για να ανακτήσω τις εγγραφές θα έπρεπε να συντάξω ένα query τύπου:
use database x
select * from guestbook_name where username = 'uncle'

ok αυτό, υπο φυσιολογικές συνθήκες πάντα.

Μετά από 2 ώρες λοιπόν και αφού είμαι έτοιμος να το κάνω delete και rebuilt τη βάση, ανακαλύπτω στα επιμέρους settings ένα κουμπί για χαζούς που σε ρωτάει "τι θες να βρεις". Εισάγω λοιπόν uncle στο πεδίο αναζήτησης και το αποτέλεσμα που μου επέστρεψε είναι το παρακάτω.



WTF!!!??!!Τι να πεις τώρα στον "εν πληροφορική αδερφό"?, ότι μόνο αυτός μπορεί να τετραγωνίσει τον κύκλο?, ότι καιρός είναι να ασχοληθεί με την μεταφορά μάζας στον χώρο (τηλεμεταφορά) και να κόψει την SQL, ότι είναι πούστης και πρεζάκιας? ότι είναι καιρός να κόψει εισιτήριο σε ίδρυμα για παράφρονες?

2 comments:

Anonymous said...

hahaha!!
poli kalo
tha to kanw kai gw!!
m aresei pou dineis idees..
an mou zitisei kaneis pali etoimo kwdika tha vriskei kai kati tetoia tsitata mesa na dw meta xanazitaei??

Wise_One said...

Αν κι είμαι εντελώς νέοπας στην SQL, ο κώδικας μου φαίνεται εντελώς καμένος.

Πάντως ωραίο που στο label έβαλες "duh".:DDDDD