为什么CASE-WHEN-IN-THEN不能在MySQL中工作?

为什么CASE-WHEN-IN-THEN不能在MySQL中工作?,mysql,sql,Mysql,Sql,[重要提示]这是《学习SQL》一书中的一个练习,因此除了CASE-WHEN之外,我不能使用任何其他方法。我的表格如下: Rewrite the following query, which uses a simple case expression, so that the same results are achieved using a searched case expression. Try to use as few when clauses as possible. SELECT

[重要提示]这是《学习SQL》一书中的一个练习,因此除了CASE-WHEN之外,我不能使用任何其他方法。我的表格如下:

Rewrite the following query, which uses a simple case expression, so that the same results are 
achieved using a searched case expression. Try to use as few when clauses as possible.

SELECT name,
CASE name
WHEN 'English' THEN 'latin1'
WHEN 'Italian' THEN 'latin1'
WHEN 'French' THEN 'latin1'
WHEN 'German' THEN 'latin1'
WHEN 'Japanese' THEN 'utf8'
WHEN 'Mandarin' THEN 'utf8'
ELSE 'Unknown'
END character_set
FROM language;

问题如下:

Rewrite the following query, which uses a simple case expression, so that the same results are 
achieved using a searched case expression. Try to use as few when clauses as possible.

SELECT name,
CASE name
WHEN 'English' THEN 'latin1'
WHEN 'Italian' THEN 'latin1'
WHEN 'French' THEN 'latin1'
WHEN 'German' THEN 'latin1'
WHEN 'Japanese' THEN 'utf8'
WHEN 'Mandarin' THEN 'utf8'
ELSE 'Unknown'
END character_set
FROM language;
我尝试了以下方法:

SELECT name,
CASE name
WHEN language.name IN ('English','Italian','French','German')
THEN 'latin'
WHEN language.name IN ('Japanese','Mandarin')
THEN 'utf8'
ELSE 'Unknown'
END character_set
FROM language;

这给了我一个与条件中提到的完全相反的结果,例如,它显示“utf8”表示“英语”,而“latin1”表示“普通话”。我做错了什么?

当value样式与单值表达式以外的值一起使用时,不能使用
大小写表达式

您必须在条件
时使用
大小写样式(只需在
大小写
之后立即删除
名称
):


为便于阅读,对其进行了修剪和格式化。

当value
样式为单值表达式以外的值时,不能使用
大小写表达式

您必须在条件
时使用
大小写样式(只需在
大小写
之后立即删除
名称
):


修剪并格式化以确保可读性。

查看第二个查询实际上是无效的标准SQL,应该会导致错误查看第二个查询实际上是无效的标准SQL,应该会导致错误。对于这样愚蠢的查询,您认为要多久我才能开始舒适地使用SQL编码?@s3ri0u58lock与大多数技能一样,最简单的部件大部分时间都在使用。技能中较难/高级的方面很少使用。SQL也一样::创建表、插入和选择行是您要做的大部分工作,因此您可能已经能够使用它做一些有用的事情了。如果你在一些更具挑战性的事情上需要帮助,请回到这里,再问一个问题!有了这些愚蠢的查询,你认为我要多久才能开始舒适地用SQL编码?@s3ri0u58lock和大多数技能一样,最简单的部分大部分时间都在使用。技能中较难/高级的方面很少使用。SQL也一样::创建表、插入和选择行是您要做的大部分工作,因此您可能已经能够使用它做一些有用的事情了。如果你在一些更具挑战性的事情上需要帮助,请回到这里,再问一个问题!