2009-08-28 9 views
76

me siguen dando MySQL error # 1054, cuando se trata de realizar esta consulta de actualización:Desconocido columna errónea 'lista de campos' en MySQL actualización consulta

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 

Es probablemente un error de sintaxis, pero he intentado usar una combinación interna en lugar y otras alteraciones, pero me siguen dando el mismo mensaje:

Unknown column 'y' in 'field list' 

Respuesta

109

Trate de usar diferentes cotizaciones para "y" como el carácter de comillas identificador es el acento grave (“`”). De lo contrario, MySQL "piensa" que apunta a una columna llamada "y".

Ver también MySQL 5 Documentation

+0

Me ayuda a darle las gracias. –

15

Es posible comprobar su elección de cotizaciones (uso doble/comillas simples para los valores, cuerdas, etc y acentos abiertos para la columna de nombres).

Dado que sólo desea actualizar la tabla master_user_profile Me gustaría recomendar una consulta anidada:

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

Gracias por la sugerencia, parece un método más elegante. –

33

adjuntar cualquier cadena que se pasa al servidor MySQL entre comillas simples; ej .:

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

en cuenta que aunque la consulta está encerrada entre comillas dobles, se debe incluir cualquier cadena entre comillas simples.

+0

Gracias. Estaba tratando de descubrir por qué mi consulta en PHP no estaba funcionando, todo lo que tenía que hacer era agregar las comillas simples. – RiCHiE

+1

Sé que esta es una publicación anterior, pero ¿podría responder por qué tiene que poner comillas? – RiCHiE

+0

@RiCHiE generalmente es más seguro cuando se usan cadenas. Además, tiene más sentido para mí poner cadena entre comillas. Cuando usas funciones como SHA1, por ejemplo, pones citas en el contenido dentro como 'SHA1 ('$ var')' – George

2

En mi caso, fue causado por un espacio al final invisible al final del nombre de la columna. Simplemente revisa si realmente usas "y" o "y" en su lugar.

0

una consulta como thi también hará que el error

select table1.id from table2 

Cuando la tabla se especifica en la columna de seleccionar y no incluido en la cláusula from.

0

Al trabajar primero en la creación de una aplicación .Net con el código EF, recibí este mensaje de error al intentar aplicar mi migración donde tenía una declaración Sql("UPDATE tableName SET columnName = value");.

Resulta que escribí mal el columnName.

Cuestiones relacionadas