Mysql 对包含空格的列使用select语句
我有两张桌子: 第一表 [![在此处输入图像描述][1][1] 第二表OGRAF [![在此处输入图像描述][2][2] 在状态或服务发生变化后,我想更新表Suivi上的RAFHJ值。OGRAF表表示每种组合的RAFHJ 例如:表Suivi中的977项目是MFW的第4个状态,因此根据OGRAF表,RAFHJ应该是5,所以一切都很好。现在,如果状态变为5-Install/Config,RAFHJ应该变为4,仍然根据OGRAF表 目前我只是想得到我需要的价值。 问题是列名中有空格,因此我无法执行此类请求:Mysql 对包含空格的列使用select语句,mysql,sql,request,Mysql,Sql,Request,我有两张桌子: 第一表 [![在此处输入图像描述][1][1] 第二表OGRAF [![在此处输入图像描述][2][2] 在状态或服务发生变化后,我想更新表Suivi上的RAFHJ值。OGRAF表表示每种组合的RAFHJ 例如:表Suivi中的977项目是MFW的第4个状态,因此根据OGRAF表,RAFHJ应该是5,所以一切都很好。现在,如果状态变为5-Install/Config,RAFHJ应该变为4,仍然根据OGRAF表 目前我只是想得到我需要的价值。 问题是列名中有空格,因此我无法执行此类
Select (Select Status from Suivi where idProject=1)
from OGRAF, Suivi
WHERE Suivi.Service=OGRAF.Service and Suivi.idProject=1;
如果我这样做,它会起作用:
Select `8 - Tests`
from OGRAF, Suivi
WHERE Suivi.Service=OGRAF.Service and Suivi.idProject=1;
我已经花了好几个小时试图解决这个问题,最近我开始使用SQL,所以如果有人能帮助我,我将不胜感激。你试过了吗
Select [8 - Tests]
from OGRAF, Suivi
WHERE Suivi.Service=OGRAF.Service and Suivi.idProject=1;
试一试据我所知,以下答案可能会有所帮助 您可能希望将您的问题标记为MySQL,并编写一个更好的文本,因为您的请求不清楚-您不需要指定表OGRAF中的表Suivi列RAFHJ中的值 MySql未检查示例:
update Suivi su
join OGRAF og on su.Service = og.Service
set
su.RAFHJ = 2
where su.idProject = 1;
MySql的语法允许在列的名称中留有空格。你必须在名字后面加上勾号` 如果联接列表中多个表中的列名称相同,则可以使用表名称在选择列表中为列添加前缀,以消除歧义
你说它不起作用是什么意思。它会崩溃吗?它是否显示了不同的结果?我收到一条错误消息:1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第1行的“[8-测试]附近使用的正确语法,其中Suivi.Service=OGRAF.Service和Suivi.idPr”,因为我理解您的问题,您想从OGRAF中选择与Suivi.Status中的值同名的列吗?我想选择OGRAF单元格的值,即Suivi.Service=OGRAF.Service和Suivi.Status=OGRAF.该列的名称谢谢您的回复,我编辑了我的帖子,希望现在能更好地理解。