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 + Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Black Sails Chronicles: ON - Comizio Pubblico
The Coven: 🎃 Halloween Month - The Coven 🎃
Lineage II → Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
I dati del generatore di rank sono stati aggiornati!
cronaikos_gdr ha risposto alla discussione: Cronaikos GDR
World of Tanks: Pre-download dell'aggiornamento 2.0.1!
Il gestore di Oceanside GDR ha risposto alla recensione di nez
RAID Shadow Legends → Plasma i tuoi eroi fino a farli diventare vere e proprie armi viventi e assembla i più epici gruppi d'assalto mai visti finora!
cronaikos_gdr ha aperto una nuova discussione: Cronaikos GDR
Hogwarts Express - Harry Potter GDR Forum: 🐉 CDCM: Gli Incubi arrivano in aula! 🐉
titti ha recensito Black Sails Chronicles
Seconda Era → Vaste terre coperte di ombre e misteri, dove ogni eroe scrive la storia del Mondo di Eidel. Seconda Era, Play By chat
Extremelot: Tornano le Zucche di Ottobre! 🎃
New Orleans: [On Game] Dispute Territoriali, Incipit.
blackhawk ha risposto alla discussione: Gioco investigativo e politico
AlterEgo → Scopri AlterEgo GdR: un incredibile universo narrativo in stile medievale fantasy che cresce, muta e vive giorno dopo giorno grazie ai suoi giocatori!
Cronache di Earthland - Intervista al gestore di Le Cronache di Earthland il play by chat ambientato nel mondo del manga Fairy Tail
Il Regno dei Draghi - Intervista alla gestrice di Il Regno dei Draghi il play by forum delle Cronache del Ghiaccio e del Fuoco
Giochi Medievali - Lista completa dei giochi di ruolo online ambientati nell'oscuro Medioevo
Terre Invisibili Boardgame - Terre Invisibili: dal play by chat al tavolo da gioco, l'avventura fantasy per conquistare un regno!
One Piece World - Intervista al gestore del gdr play by chat One Piece World!
Creare un Ambientazione - Come creare un’ambientazione: mondo, fisica, storia, sociale, stili di vita e metodi!
Tesi sui GrV - I giochi di ruolo dal vivo: una analisi empirica. Tesi di Davide Pavan sui GrV