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

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

Δημοσ.

Καλησπέρα.

 

Έστω ότι έχουμε στήλη με όνομα id και μια εγγραφή που έχει id = 11.

 

>SELECT * FROM table WHERE id = '11fdsfsdfsdf'

 

Αυτό μου επιστρέφει αποτέλεσμα την έγγραφη που έχει id = 11 !

 

Αντίθετα άμα δώσω

>SELECT * FROM table WHERE 'id' = '11fdsfsdfsdf'

(προσοχή ότι έχω βάλει quotes στο όνομα της στήλης)

 

Δεν μου επιστρέφει καμία εγγραφή (όπως είναι και το λογικό!)

 

Τί γίνεται ρε παιδιά; Από πότε χρειάζονται quotes στο όνομα της στήλης; Και από πότε η mysql υιοθέτησε αυτή την περίεργη συμπεριφορά να σου βγάζει αποτελέσματα σα να έχεις κάνει LIKE άμα δεν βάζεις τα quotes?!

Δημοσ.

 

 

Τί γίνεται ρε παιδιά; Από πότε χρειάζονται quotes στο όνομα της στήλης; Και από πότε η mysql υιοθέτησε αυτή την περίεργη συμπεριφορά να σου βγάζει αποτελέσματα σα να έχεις κάνει LIKE άμα δεν βάζεις τα quotes?!

 

Δεν το βλεπει ως στηλη, το βλεπει ως συνθηκη

πχ

>select * from SomeTable where 3 + 5 = 2 + 6

 

Δημοσ.

Ευχαριστώ για την γρήγορη απάντηση antonl. :-)

 

Δεν το βλεπει ως στηλη, το βλεπει ως συνθηκη

πχ

>select * from SomeTable where 3 + 5 = 2 + 6

έτσι εξηγείτε και το δεύτερο part. Ευχαριστώ.

  • 1 μήνα μετά...
Δημοσ.

Το πρώτο part σου απαντήθηκε ή ακόμα ψάχνεις τι φταίει;

 

Αν δεν έχεις ακόμα βρει τι φταίει με το

 

>SELECT * FROM table WHERE id = '11fdsfsdfsdf'

 

Λογικά το πεδίο 'ID' του πίνακα 'TABLE' είναι μεγέθους char 2 / numc 2

Σε αυτήν την περίπτωση, από την συνθήκη που γράφεις στο where, παίρνει τόσους χαρακτήρες όσους μπορεί να βάλει μέσα στο 'ΙD'.

Δημοσ.

Το πρώτο part σου απαντήθηκε ή ακόμα ψάχνεις τι φταίει;

 

Απαντήθηκε από την πρώτη απάντηση. Το πεδίο λογικά είναι int.

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

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

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

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

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

Σύνδεση

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

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