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
I dati del generatore di rank sono stati aggiornati!
Ex Gratia GDR: Nuova Entità: Sun Wukong!
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
Nyx Insight - Project S.E.T.: Comunicazione del Rettorato - Gli Sport arrivano
black sails chronicles si è accreditato come gestore di Black Sails Chronicles
Nuovo Play by Chat Fantasy → Black Sails Chronicles
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Entropia Universe: Crafting Mania!
Ex Gratia GDR: Traumi e dove trovarne...
pyro72 ha recensito Crash Bandicoot Zone
blackmirror ha recensito Apocalypse Requiem: Detroit
Crash Bandicoot Zone → Caos, libertà e risate: nel GDR ambientato nell’universo di Crash Bandicoot, ogni storia è possibile… e nulla è troppo folle!
Dissendium Draconis: Modifiche e Implementazioni: Pozioni
Le Cronache di Raja Dunia: Il Vuoto ed i suoi Principi Demoniaci
masters league si è accreditato come gestore di Masters League
Ex Gratia GDR: Nuova Entità: Ichirei!
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Cyberpunk in Italia - Il cyberpunk è un movimento nato negli anni Ottanta tra Stati Uniti e Canada.. scopriamolo in questa tesi
Bloody Sunday - Intervista alla gestione di Bloody Sunday Gdr, play by chat ad ambientazione Streghe!
Ansia e GdR - GdR Online per i timidi: Come superare l'Ansia Sociale Virtuale!
Conferenza GDR-online - Conferenza sui GDR online svoltasi a Lucca and Games 2006
Allineamenti nei GdR - Caratteristiche principale per tutti i tipi di allineamento nei giochi di ruolo!
Tesi Gdr Live - Live action role play: Un trentennio di storia dimenticata. Influenze inaspettate e peculiarità del Gioco di Ruolo dal Vivo.
New York GDR - Intervista al gestore di New York GDR il play by chat moderno ambientato nella grande mela!
PDI Mappe - Raccolta di oltre 1.000 icone per punti di interesse nelle mappe!