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 - Fatal编程技术网

MySQL案例语句无法识别的关键字&;意外标记

MySQL案例语句无法识别的关键字&;意外标记,mysql,Mysql,我不知道为什么我在MySQL查询中从第一个CASE关键字开始的每一个单词都有错误,我希望有人能看到我过去几个小时绞尽脑汁的东西。下面是一个经过裁剪的代码示例: CREATE TEMPORARY TABLE low_revenue_a ENGINE=MEMORY AS (SELECT fielda,fieldb, CASE WHEN quality_rev = 'A' THEN 1 WHEN quality_rev = 'B' THEN 2 WHEN quality_rev = 'C' THEN

我不知道为什么我在MySQL查询中从第一个
CASE
关键字开始的每一个单词都有错误,我希望有人能看到我过去几个小时绞尽脑汁的东西。下面是一个经过裁剪的代码示例:

CREATE TEMPORARY TABLE low_revenue_a ENGINE=MEMORY AS
(SELECT fielda,fieldb,
CASE WHEN quality_rev = 'A' THEN 1 WHEN quality_rev = 'B' THEN 2 WHEN quality_rev = 'C' THEN 3 END AS quality_rev,
fieldc,fieldd,
CASE WHEN quality_sales = 'A' THEN 1 WHEN quality_sales = 'B' THEN 2 WHEN quality_sales = 'C' THEN 3 END AS quality_sales,
fielde,fieldf,
CASE WHEN quality_other_sales = 'A' THEN 1 WHEN quality_other_sales = 'B' THEN 2 WHEN quality_other_sales = 'C' THEN 3 END AS quality_other_sales,
fieldg,fieldh,myyear
FROM Db.mytable
WHERE myyear = 2014);

一旦我添加了
CASE
语句,所有意外的标记和无法识别的关键字错误都会出现。有什么想法吗?

这会产生同样的错误吗

CREATE TEMPORARY TABLE low_revenue_a ENGINE=MEMORY AS
    SELECT fielda, fieldb,
           (CASE WHEN quality_rev = 'A' THEN 1
                 WHEN quality_rev = 'B' THEN 2 
                 WHEN quality_rev = 'C' THEN 3
            END) AS quality_rev,
           fieldc, fieldd,
           (CASE WHEN quality_sales = 'A' THEN 1
                 WHEN quality_sales = 'B' THEN 2
                 WHEN quality_sales = 'C' THEN 3
            END) AS quality_sales,
           fielde, fieldf,
           (CASE WHEN quality_other_sales = 'A' THEN 1
                 WHEN quality_other_sales = 'B' THEN 2
                 WHEN quality_other_sales = 'C' THEN 3
            END) AS quality_other_sales,
           fieldg, fieldh, myyear
    FROM Db.mytable
    WHERE myyear = 2014;

我遇到的问题有两个方面。第一,括号确实帮助并消除了phpmyadmin中显示的错误。另一个原因是我自己愚蠢的疏忽,因为我拼错了一个字段名:quality_rev。非常感谢!不管怎样,你的建议对我收到过多的错误起了作用。