Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL更新查询中“字段列表”中的未知列出错_Mysql_Sql_Mysql Error 1054 - Fatal编程技术网

MySQL更新查询中“字段列表”中的未知列出错

MySQL更新查询中“字段列表”中的未知列出错,mysql,sql,mysql-error-1054,Mysql,Sql,Mysql Error 1054,在尝试执行此更新查询时,我不断收到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 这可能是一些语法错误,但我尝试使用内部联接和其他更改,但我一直得到相同的消息: Un

在尝试执行此更新查询时,我不断收到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' 

尝试对y使用不同的引号,因为标识符引号字符是回勾“`”。否则MySQL会认为您指向一个名为y的列


另请参见

您可以检查引号的选择,对值、字符串等使用双引号/单引号,对列名使用反勾号

由于您只想更新表master\u user\u配置文件,因此我建议使用嵌套查询:

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

将要传递给mysql服务器的任何字符串用单引号括起来;e、 g:

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

请注意,尽管查询是用双引号括起来的,但您必须用单引号括起来任何字符串。

在我的例子中,这是由于列名末尾有一个看不见的尾随空格造成的。只需检查您是否真正使用y或y即可。

这样的查询也会导致错误:

SELECT table1.id FROM table2

表在列select中指定,不包含在from子句中。

首先使用EF代码处理.Net应用程序生成时,我在尝试应用迁移时收到了此错误消息,其中SqlUPDATE tableName设置了columnName=值;声明


原来我拼错了列名。

我也遇到了同样的错误,我的问题是我在GROUPBY子句中包含了列名,这导致了这个错误。因此,从GROUPBY子句中删除了该列,它成功了

如果是hibernate和JPA。检查引用的表名和列是否不匹配

在MySQL数据库上通过LINQ使用GroupBy时,我遇到了此错误。问题是GroupBy使用的匿名对象属性与数据库列名不匹配。通过重命名匿名属性名以匹配列名进行修复

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

只是分享我在这方面的经验。我也有同样的问题。insert或update语句是正确的。我还检查了编码。该列确实存在。 然后我发现我在引用触发器中的列。
您还应该检查触发器,看看是否有脚本引用了有问题的列

只是分享一下我在这方面的经验。我也有同样的问题。我的问题是:

select table1.column2 from table1

但是,表1没有column2列。

在我的例子中,Hibernate在snake案例中查找列,如create_date,而DB中的列在camel案例中,如createDate。 添加


请转到应用程序。yml已帮助解决此问题。

谢谢。我试图弄明白为什么我的PHP查询不起作用,我所要做的就是添加单引号。我知道这是一篇老文章,但你能回答为什么必须在其中加引号吗?@RiCHiE使用字符串通常更安全。另外,在引号之间放置字符串对我来说更有意义。例如,当您使用像SHA1这样的函数时,您会在内容中加上引号,比如SHA1“$var”,这对我来说很有效。首先,我尝试使用反勾号,但运气不好。请正确转义传递到查询中的所有变量!只需使用$name=mysqli\u real\u escape\u string$name即可正确转义引号!当我感到困惑并在字符串周围使用双引号而不是单引号时,我就遇到了这种情况。有时它也是拼写错误的表名。
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