Spiegazione Query postato il 08/08/2010 23:28:13 nel forum programmazione, gdrcd, open source, hosting
Allora,vi elenco due query differenti che mi stanno dando tortura di morte (il problema l'ho risolto,xò mi credete ke NON ho capito come ho fatto?...xk non riesco a capire la differenza tra le due query..)
Questo è il codice errato:
Pagine → 1 2
09/08/2010 00:30:06
Gli operatori logici, come quelli matematici, sono modificati dalle parentesi nell'ordine di esecuzione.
5 + (2 * 3)
è diverso
da
(5 + 2) * 3
quindi a seconda di come annidi OR e AND cambia il risultato (true o false) di ogni singola espressione e quindi può cambiare anche quello dell'espressione finale.
09/08/2010 10:30:42
Oltretutto i controlli su IDRazza e IDClasse <> 0 sono assolutamente inutili; un'altra cosa: per effettuare controlli su un range di valori utilizza between, è più leggibile. Comunque, buttando un'occhiata veloce, credo che il problema stia nell'or fra IDRazza e quell'altra brutta parentesi; avresti dovuto usare delle parentesi per incapsulare quell'espressione.
09/08/2010 11:27:11
il codice va bene ... ecco quello corretto
09/08/2010 11:37:27
09/08/2010 11:46:10 e modificato da nodd il 09/08/2010 12:05:56
Nn hai capito xD
Io la differenza la so..ma in QUEL caso,con QUELLE condizione..
SIA se metto OR,SIA se metto AND mi ridà lo stesso risultato Oo'..cpt qual'è il mio piccio?
09/08/2010 12:06:17 e modificato da la kaiah il 09/08/2010 12:09:17
evita di scrivere sproloqui, che non sono giustificati se non riusciamo a comprendere la tua domanda.
le differenze di applicazione degli operatori logici sono fortemente collegate all'uso delle parentesi.
and e or non hanno la stessa priorità, significa che se non metti delle parentesi per modificare la sequenza di esecuzione degli operatori and e or, saranno risolti sequenzialmente come li hai scritti
scrivere a and b or c
è diverso che scrivere a and ( b or c)
perchè nel'esecuzione della prima è come se ci fossero le parentesi sul primo operatore (a and b) or c
le query che hai scritto sono differenti ed è differente anche il loro significato logico dalla spiegazione che hai dato di quello che avrebbero dovuto fare. almeno della prima che ho letto.
edit: edito per lasciarti un altro link, spero più vicino a ciò che ti interessa.
http://www.mysqlitalia.it/recipes/112-gli-operatori-logici
09/08/2010 12:18:49 e modificato da vino_veritas il 09/08/2010 12:20:23
Guarda che semplicemente con quella condizione i risultati delle query sono diversi: nel caso dell'and ti restituisce solo i valori compresi fra 1 e 11, nel caso dell'or ti restituisce tutti i valori. Oltretutto, ti ripeto: scrivere "idrazza = 0 OR idrazza <> 0" non ha alcun senso. Significa dire "Se l'id è diverso da zero o è uguale a zero"; è ovvio che è un risultato sempre vero.
09/08/2010 12:29:07
si scusa..l'abitudine fa brutti skerzi,cmq corretto ^^..
Cmq vino ti pongo una domanda...
Se io scrivo
IDRazza = 0 OR (IDRazza <> 0 AND IDRazza >= 1 AND IDRazza < 11)
In questo caso,il <> non dovrebbe essere "eliminato" dal fatto che IDRazza dovrà per FORZA contenere un risultato pari a IDRazza >= 1 e IDRazza < 11 Oo?[ invece no,xk mi preleva tutti i risultati
e
IDRazza = 0 OR (IDRazza <> 0 OR IDRazza >= 1 AND IDRazza < 11)
in questo caso invece,mi preleva TUTTI i risultati che assume IDRazza e stiamo pace..
Capito qual'è la mia domanda??
Mi skuso ancora x prima,è stato involontario,pardon^^
09/08/2010 13:01:46
Perchè non provi le 2 query con solo quelle condizioni nel where? Scoprirai che in effetti restituiscono due resultset diversi, esattamente come ti aspetti :-)
09/08/2010 13:02:18
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Planethos GdR: Una nuova profezia
OGame → In OGame migliaia di giocatori da tutto il mondo competono tra di loro per conquistare l'intero universo!
Metin2: Informazioni sul server migliorate
Age of Crystals: Rallentamenti estivi
dbzgdr ha risposto alla discussione: Dragon Ball Z Gdr
Titan Revenge: Calendario eventi fino a fine mese online!
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Enlisted: Modifiche al sistema di aggiornamento
pyro72 ha aperto un annuncio di ricerca: World Without Heroes ricerca Giocatore
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
World Without Heroes: News GDR: Pubblicazione e Nuovo Inizio
I dati del generatore di rank sono stati aggiornati!
Il gestore di Nexi Generation ha risposto alla recensione di deanna
World Without Heroes → Affronta le forze occulte che minacciano il mondo in World Without Heroes, un gdr play-by-mobile su Whatsapp basato sulle teorie del complotto!
Oltre il Velo - Intervista alla gestrice del GdR fantasy moderno Oltre il Velo!
Crystal Tokyo - Intervista ai gestori di Crystal Tokyo, gdr urban fantasy da oltre 10 anni!
5Gringos - Scopri il gameplay interattivo di 5Gringos casinò!
Hogwarts Mystery GdR - Intervista alla gestrice del play by forum potteriano Hogwarts Mystery GdR
La quest dell’Eroe - La quest dell’Eroe in The Silmarillion di J.R.R. Tolkien
Absynthe - Intervista ai gestori del play by chat fantasy moderno Absynthe!