2009-08-28 18 views
76

continuo a ricevere MySQL errore # 1054, quando si cerca di eseguire questa query di aggiornamento:sconosciuta colonna 'dei campi' errore su MySQL query di aggiornamento

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH 
SET MASTER_USER_PROFILE.fellow=`y` 
WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID 
AND TRAN_USER_BRANCH.BRANCH_ID = 17 

E 'probabilmente qualche errore di sintassi, ma ho provato ad utilizzare un join interno, invece, e altre alterazioni, ma io continuo a ricevere lo stesso messaggio:

Unknown column 'y' in 'field list' 

risposta

109

Provare a utilizzare diverse citazioni per "y" come il carattere identificativo citazione è l'apice inverso (“`”). Altrimenti MySQL "pensa" che punti a una colonna chiamata "y".

Vedi anche MySQL 5 Documentation

+0

Mi aiuta grazie. –

15

Si potrebbe verificare la vostra scelta di citazioni (utilizzare doppio/virgolette singole per i valori, stringhe, ecc e apici inversi per la colonna nomi).

Dal desideri solo per aggiornare la tabella master_user_profile mi consiglia una query nidificate:

UPDATE 
    master_user_profile 
SET 
    master_user_profile.fellow = 'y' 
WHERE 
    master_user_profile.user_id IN (
     SELECT tran_user_branch.user_id 
     FROM tran_user_branch WHERE tran_user_branch.branch_id = 17); 
+0

Grazie per il suggerimento, sembra un metodo più elegante. –

33

Racchiudere qualsiasi stringa da passare al server MySQL all'interno apici; es .:

$name = "my name" 
$query = " INSERT INTO mytable VALUES (1 , '$name') " 

Nota che, anche se la query è racchiuso tra virgolette, è necessario racchiudere qualsiasi stringa tra virgolette singole.

+0

Grazie. Stavo cercando di capire perché la mia query in PHP non funzionava, tutto quello che dovevo fare era aggiungere le virgolette singole. – RiCHiE

+1

So che questo è un vecchio post ma saresti in grado di rispondere sul motivo per cui devi inserire le virgolette? – RiCHiE

+0

@RiCHiE è solitamente più sicuro quando si utilizzano le stringhe. Inoltre, ha più senso per me mettere una stringa tra virgolette. Quando si utilizzano funzioni come SHA1, ad esempio, si inseriscono virgolette nel contenuto all'interno come 'SHA1 ('$ var')' – George

2

Nel mio caso, è stato causato da uno spazio finale non visto alla fine del nome della colonna. Basta controllare se invece usi davvero "y" o "y".

0

Un'interrogazione come thi causerà anche l'errore

select table1.id from table2 

Quando è indicato il tavolo nella colonna selezionare e non inclusi nella clausola from.

0

Mentre lavoravo su una build di app .Net prima con il codice EF, ho ricevuto questo messaggio di errore quando provavo ad applicare la mia migrazione dove avevo un'istruzione Sql("UPDATE tableName SET columnName = value");.

Si è verificato l'errore di ortografia di columnName.

Problemi correlati