it-swarm.com.de

Unbekannte Spalte in 'Feldliste' Fehler in MySQL Update-Abfrage

Beim Versuch, diese Aktualisierungsabfrage auszuführen, erhalte ich ständig den MySQL-Fehler Nr. 1054:

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 ist wahrscheinlich ein Syntaxfehler, aber ich habe versucht, stattdessen einen inneren Join und andere Änderungen zu verwenden, aber ich erhalte die gleiche Meldung:

Unknown column 'y' in 'field list' 
96
me_here

Verwenden Sie verschiedene Anführungszeichen für "y", da das Anführungszeichen ("` ") das Bezeichnerzeichen ist. Ansonsten "meint" MySQL, dass Sie auf eine Spalte mit dem Namen "y" zeigen.

Siehe auch MySQL 5-Dokumentation

127
tuergeist

Umschließen Sie eine beliebige Zeichenfolge, die an den MySQL-Server übergeben werden soll, in einfache Anführungszeichen. z.B.:

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

Obwohl die Abfrage in doppelte Anführungszeichen eingeschlossen ist, müssen Sie müssen jeden String in einfache Anführungszeichen einschließen.

39
ShoushouLeb

Sie können die Auswahl der Anführungszeichen überprüfen (verwenden Sie doppelte/einfache Anführungszeichen für Werte, Zeichenfolgen usw. und Backticks für Spaltennamen).

Da Sie nur die Tabelle master_user_profile aktualisieren möchten, würde ich eine verschachtelte Abfrage empfehlen:

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);
16
user156676

In meinem Fall wurde dies durch ein nicht sichtbares Leerzeichen am Ende des Spaltennamens verursacht. Prüfen Sie einfach, ob Sie wirklich "y" oder "y" verwenden.

2
Aminah Nuraini

Ich habe diesen Fehler erhalten, wenn ich GroupBy über LINQ in einer MySQL-Datenbank verwende. Das Problem bestand darin, dass die von GroupBy verwendete anonyme Objekteigenschaft nicht mit dem Namen der Datenbankspalte übereinstimmte. Behoben durch Umbenennen des anonymen Eigenschaftennamens entsprechend dem Spaltennamen.

.Select(f => new 
{
   ThisPropertyNameNeedsToMatchYourColumnName = f.SomeName
})
.GroupBy(t => t.ThisPropertyNameNeedsToMatchYourColumnName);
0
Eternal21

Wenn es Ruhezustand und JPA ist. Überprüfen Sie, ob der Name der referenzierten Tabelle und die Spalten möglicherweise nicht übereinstimmen

0
Poorna

Eine Abfrage wie diese verursacht auch den Fehler

select table1.id from table2

Wo die Tabelle in der Spalte select angegeben ist und nicht in der from-Klausel enthalten ist.

0
hogarth45

Bei der Arbeit an einer .NET-App, die zuerst mit EF-Code erstellt wurde, erhielt ich diese Fehlermeldung, als ich versuchte, meine Migration mit einer Sql("UPDATE tableName SET columnName = value");-Anweisung anzuwenden.

Es stellte sich heraus, dass ich den Spaltennamen falsch geschrieben habe.

0
Masterchief

Ich habe auch den gleichen Fehler erhalten, Problem in meinem Fall ist, dass ich den Spaltennamen in die Klausel GROUP BY aufgenommen habe und diesen Fehler verursacht habe. Also die Spalte aus der GROUP BY-Klausel entfernt und es hat funktioniert !!!

0
mannedear