2011-10-05 14 views
11

Il mio tavolo ha una colonna isSuccessful, ho impostato il tipo di dati come booleano (0 indica false, 1 indica vero), e per impostazione predefinita è 0.Come posso aggiornare i valori booleani in mysql?

Ma quando voglio aggiornare questa colonna utilizzando php,

UPDATE .......... SET isSuccessful = 1 WHERE ......... 

non funziona.

ho cercato di impostare il isSuccessful come 1, è vero, sì, ma nessuno di loro funzionerà.

Così come posso cambiare i valori di isSuccessful?

+4

Quello che descrivi dovrebbe funzionare. Devi fare qualcos'altro sbagliato. Si prega di inviare la richiesta completa. – Hammerite

+4

Definire "non funziona". Stai ricevendo errori? Puoi impostare il valore manualmente in un'interfaccia di amministrazione? Sei sicuro che la tua clausola 'WHERE' corrisponda a qualcosa? – deceze

+0

Quali errori ottieni? 'SET isSuccessful = 1' questo funziona per me dal ... mai. – Coyote

risposta

16

Una semplice query di aggiornamento dovrebbe essere sufficiente. I campi booleani sono se ricordo correttamente sono semplicemente campi tinyint (1) e accettano alias per 1 e 0 rispettivamente come vero e falso (come stringhe). Quanto segue dovrebbe andare bene. Forse se hai pubblicato la tua query esatta piuttosto che una versione ridotta qualcuno potrebbe individuare un problema?

UPDATE `table` SET `isSuccessful` = 1 WHERE `column` = 'criteria' 
+0

Da http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html: 'A partire da MySQL 5.0.3, un tipo di dati bit è disponibile per la memorizzazione di valori di bit di campo. (Prima di 5.0.3, MySQL interpreta BIT come TINYINT (1).) In MySQL 5.0.3, BIT è supportato solo per MyISAM. MySQL 5.0.5 estende il supporto BIT a MEMORY, InnoDB, BDB e NDBCLUSTER. ' –

+1

È inoltre possibile utilizzare:' SET isSuccessful = b'1'' –

+1

@ypercube Questo presuppone che il PO impostare il tipo di dati a BIT. Tuttavia è implicito che il tipo di dati BOOLEAN è stato impostato che implica che è un campo TINYINT. BOOL, BOOLEAN Questi tipi sono sinonimi per TINYINT (1). Un valore pari a zero è considerato falso. I valori diversi da zero sono considerati veri. Da http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html Ciò significa che 'set isuccessful = b'1'' non funzionerebbe? –

0

assicuratevi di mettere questo personaggio "`", che è la stessa chiave del "~" sul lato sinistro del tasto "1" sulla tastiera, che dovrebbe farlo, se si utilizza PHP + MySQL con linux .

+0

'è opzionale .. – Qix

+0

non tutti hanno layout USA – beppe9000

Problemi correlati