164

この更新クエリを実行しようとすると、MySQLエラー#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

おそらく構文エラーですが、代わりに内部結合やその他の変更を使用しようとしましたが、同じメッセージが表示され続けます。

Unknown column 'y' in 'field list' 
4

13 に答える 13

211

識別子の引用符はバックティック(「 `」)であるため、「y」には別の引用符を使用してみてください。それ以外の場合、MySQLは、「y」という名前の列を指していると「考え」ます。

MySQL5のドキュメントも参照してください

于 2009-08-28T10:57:59.420 に答える
62

MySQLサーバーに渡される文字列を一重引用符で囲みます。例:

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

クエリは二重引用符で囲まれていますが、文字列はすべて重引用符で囲む必要があることに注意してください。

于 2009-12-29T11:45:09.830 に答える
17

引用符の選択を確認できます(値、文字列などには二重引用符/一重引用符を使用し、列名にはバッククォートを使用します)。

テーブルを更新するだけなのでmaster_user_profile、ネストされたクエリをお勧めします。

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);
于 2009-08-28T11:08:12.237 に答える
4

私の場合、列名の末尾に表示されない末尾のスペースが原因でした。代わりに実際に「y」または「y」を使用しているかどうかを確認してください。

于 2016-10-21T10:26:36.710 に答える
4

これについての私の経験を共有するだけです。私はこれと同じ問題を抱えていました。挿入または更新ステートメントは正しいです。また、エンコーディングも確認しました。列は存在します。それで!トリガーの列を参照していることがわかりました。また、トリガーをチェックして、問題のある列を参照しているスクリプトがあるかどうかを確認する必要があります。

于 2019-11-20T02:11:11.660 に答える
2

最初にEFコードを使用して.Netアプリのビルドに取り組んでいるときに、Sql("UPDATE tableName SET columnName = value");ステートメントがあった場所に移行を適用しようとすると、このエラーメッセージが表示されました。

columnNameのスペルを間違えたことがわかりました。

于 2018-02-14T09:59:48.797 に答える
2

これについての私の経験を共有するだけです。私はこれと同じ問題を抱えていました。私の質問は次のようでした:

select table1.column2 from table1

ただし、table1にはcolumn2columnがありませんでした。

于 2020-02-01T04:43:53.477 に答える
1

HibernateおよびJPAの場合。参照されたテーブル名と列が一致していない可能性があることを確認してください

于 2019-07-24T06:30:32.410 に答える
1

私の場合、Hibernateはのようなスネークケースの列を探していましたcreate_dateが、DBの列はキャメルケースの列でしたcreateDate。追加する

spring:
  jpa:
    hibernate:
      naming: # must tell spring/jpa/hibernate to use the column names as specified, not snake case
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
        implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl

application.yml問題を解決するのに役立ちました。

于 2020-12-23T13:02:52.270 に答える
1

私の場合、テーブルにカスタムテーブルエイリアスを使用しましたが、フィールドリストではカスタムテーブルエイリアス()の代わりにFROMデフォルトのテーブルエイリアス( )を使用しました。たとえば、これを変更する必要がありました...MyTablet1

mysql> SELECT MyTable.`id` FROM `MyTable` t1;

...これに...

mysql> SELECT t1.`id` FROM `MyTable` t1;
于 2021-09-15T17:11:31.707 に答える
0

このようなクエリでもエラーが発生します。

SELECT table1.id FROM table2

テーブルが列selectで指定され、from句に含まれていない場合。

于 2017-05-16T16:58:56.963 に答える
0

私も同じエラーが発生しました。私の場合の問題は、GROUP BY句に列名を含めたためにこのエラーが発生したことです。だから、句から列を削除し、GROUP BYそれは機能しました!!!

于 2018-06-28T05:55:29.237 に答える
0

MySQLデータベースでLINQを介してGroupByを使用すると、このエラーが発生しました。問題は、GroupByによって使用されていた匿名オブジェクトのプロパティがデータベースの列名と一致しなかったことです。列名と一致するように匿名プロパティ名の名前を変更することで修正されました。

.Select(f => new 
{
   ThisPropertyNameNeedsToMatchYourColumnName = f.SomeName
})
.GroupBy(t => t.ThisPropertyNameNeedsToMatchYourColumnName);
于 2019-07-31T19:07:36.173 に答える