Mysql 1136 sql中的错误

Mysql 1136 sql中的错误,mysql,sql,Mysql,Sql,根据前面提到的sql查询,我假设您的CASE语句是错误的 INSERT INTO data_prediction_model select *, ( CASE WHEN ( offer_category like 'Everyday Low Prices on Receipe%' OR offer_category like 'Every Day Low Prices%' ) THEN "EDLP" ELSE CASE WHEN (offer_category like 'Buy Mor

根据前面提到的sql查询,我假设您的
CASE
语句是错误的

INSERT INTO data_prediction_model
select *, ( 
CASE WHEN ( offer_category like 'Everyday Low Prices on Receipe%'
OR offer_category like 'Every Day Low Prices%'

) THEN "EDLP"


ELSE
CASE WHEN (offer_category like 'Buy More & Save More%'
OR offer_category like 'Buy and Get Free'
) THEN "B1G1"

ELSE 
CASE WHEN (offer_category like 'Offer on Activation/Qualification%'
OR offer_category like 'Save on Purchase of select Products/Plans%'
OR offer_category like 'Coupons Offers%'
OR offer_category like 'Digital Coupons Offers%'
OR offer_category like 'Discounted Products%'
OR offer_category like 'Exchange Offers%'
OR offer_category like 'Multiple Brand Offers%'
OR offer_category like 'Free with Rebate'
) THEN "Discounts"

END END END) AS offer_category
FROM data_offer;
正确的案例陈述顺序, 应该是这样的以下模式

INSERT INTO data_prediction_model
select *, ( 
CASE WHEN ( offer_category like 'Everyday Low Prices on Receipe%' OR 
            offer_category like 'Every Day Low Prices%' ) 
     THEN "EDLP"
     WHEN (offer_category like 'Buy More & Save More%' OR 
           offer_category like 'Buy and Get Free') 
     THEN "B1G1"
     WHEN (offer_category like 'Offer on Activation/Qualification%' OR           
           offer_category like 'Save on Purchase of select Products/Plans%' OR
           offer_category like 'Coupons Offers%' OR 
           offer_category like 'Digital Coupons Offers%' OR 
           offer_category like 'Discounted Products%' OR 
           offer_category like 'Exchange Offers%' OR 
           offer_category like 'Multiple Brand Offers%' OR 
           offer_category like 'Free with Rebate' ) 
     THEN "Discounts"
END) AS offer_category
FROM data_offer;
而不是像这样的图案

CASE 
    WHEN condition 1 THEN value 1
    WHEN condition 2 THEN value 2
    ELSE value 3
END

希望对您有所帮助。

1136错误与表和insert中的列不匹配有关

例如:

CASE
     WHEN condition 1 THEN value 1
ELSE CASE 
     WHEN condition 2 THEN value 2
     END 
END
请注意,以
'hello'
的形式提供附加值会引发1136错误。表有两列。提供2个正确数据类型的值将成功,如下所示:

mysql> create table test (id int, name varchar(20));
Query OK, 0 rows affected (0.13 sec)

mysql> insert into test values (1, 'test', 'hello');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
仔细检查data_prediction_模型中的列数是否与data_offer+case语句中的列数相同。Case语句为插入创建一个新字段

编辑:


为了解决这个问题,请列出data\u prediction\u model中的所有列。列出数据中的所有列。数据提供应比数据预测模型少1列

把更多的信息放在这里。检查列计数是否也有问题。在SO.INSERT INTO data.data_prediction_model select*中发布问题之前,请先向谷歌寻求帮助(如果提供“Receipe%上的每日低价”之类的类别,则为“EDLP”,如果提供“每日低价%”之类的类别,则为“EDLP”,如果提供“Buy More&Save More%”之类的类别,则为“B1G1”当提供诸如“免费购买”之类的商品类别时,则将“B1G1”或“折扣”结束)作为数据提供的商品类别;得到了同样的错误AGAINas@zedfoxus如下所述。。。。1136错误是关于您的insert语句有问题,请尝试检查您的data\U prediction\U model表列,以及您的insert值。。。查看它们是否与金额和数据类型匹配。。。信用属于him@akshay您能否添加
显示创建表数据\u预测\u模型
显示创建表数据\u提供
的输出?
mysql> insert into test values (1, 'test');
Query OK, 1 row affected (0.03 sec)