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'
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
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.
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);
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.
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);
Wenn es Ruhezustand und JPA ist. Überprüfen Sie, ob der Name der referenzierten Tabelle und die Spalten möglicherweise nicht übereinstimmen
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.
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.
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 !!!