Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 - Fatal编程技术网

Mysql 是否使用内部联接更新集合大小写?

Mysql 是否使用内部联接更新集合大小写?,mysql,sql,Mysql,Sql,我正在尝试更新一个关系表中的字段。该表是一个用户技能关系表。我试图更新的字段是熟练程度字段 我有一个PHP数组,以技能名称为键,熟练程度为值 下面是我正在运行的SQL语句 UPDATE rus SET proficiency = CASE WHEN ls.name = 'Objective-C' THEN 'Beginner' END FROM rel_users_li_skills rus INNER JOIN li_skills ls ON ls.id = rus.s

我正在尝试更新一个关系表中的字段。该表是一个用户技能关系表。我试图更新的字段是熟练程度字段

我有一个PHP数组,以技能名称为键,熟练程度为值

下面是我正在运行的SQL语句

UPDATE rus 
SET proficiency = CASE 
    WHEN ls.name = 'Objective-C' THEN 'Beginner' 
    END 
FROM rel_users_li_skills rus INNER JOIN li_skills ls ON ls.id = rus.skill_id 
WHERE rus.user_id = 3852
在CASE语句中,当ls.name='skill name'然后是'proficiency'语句时,PHP数组被枚举,以添加额外的

我遇到的问题如下:

查看与您的MySQL服务器版本对应的手册,以了解第1行的“来自关系用户\u li\u skills rus internal JOIN li\u skills ls ON ls.id=rus.skill\u id WHE”附近使用的正确语法


我在这件事上被难住了。我已经发现一些SO帖子和论坛似乎使用了相同的语法并且没有问题。

MySQL
中,与
SQL Server
不同,您不需要从
中引用目标表:

UPDATE  rel_users_li_skills rus
JOIN    li_skills ls
ON      ls.id = rus.skill_id 
SET     proficiency = CASE WHEN ls.name = 'Objective-C' THEN 'Beginner' END 
WHERE   rus.user_id = 3852

MySQL
中,与
sqlserver
不同,您不需要从
中引用
中的目标表:

UPDATE  rel_users_li_skills rus
JOIN    li_skills ls
ON      ls.id = rus.skill_id 
SET     proficiency = CASE WHEN ls.name = 'Objective-C' THEN 'Beginner' END 
WHERE   rus.user_id = 3852

我通常使用这种格式

UPDATE  rel_users_li_skills rus INNER JOIN li_skills ls
           ON ls.id = rus.skill_id 
   SET  proficiency = (CASE WHEN ls.name = 'Objective-C' THEN 'Beginner' END)
 WHERE  rus.user_id = 3852

我通常使用这种格式

UPDATE  rel_users_li_skills rus INNER JOIN li_skills ls
           ON ls.id = rus.skill_id 
   SET  proficiency = (CASE WHEN ls.name = 'Objective-C' THEN 'Beginner' END)
 WHERE  rus.user_id = 3852

您的示例失败了吗?还是仅仅是PHP生成的代码?@web\u bod通过mysql控制台运行的同一查询引发了相同的错误。PHP正在生成我希望使用的查询。这是sql server使用的语法(检查标记),但是我没有使用它,所以我不确定它到底是如何编写的。您的示例失败了吗,还是仅仅是PHP生成的代码?@web\u bod通过mysql控制台运行的同一查询引发了相同的错误。PHP正在生成我希望使用的查询。这是sql server使用的语法(检查标记),但是我没有用它,所以我不确定它到底是怎么写的。@birarda:在和现在一样的地方。@birarda:在和现在一样的地方。