使用if条件运行sql查询时出错

dpiehjr4  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(285)

运行查询时出错

INSERT INTO `received_order`(
    `retailer_name`,
    `order_id`,
    `dboy_username`,
    `product_id`,
    `quantity`,
    `create_date`,
    `timestamp`,
    `payment_status`,
    `delivery_status`,
    `device_type`
)
VALUES(
    'ankur',
    'OD123',
    'manish',
    'PIDEAB565',
    (
    SELECT
        `product_quantity` IF(product_quantity > 50, 50, 0)
    FROM
        `master_stock`
    WHERE
        `product_id` = 'PIDEAB565'
),
'',
'',
'',
'',
''
)

mysql说:
1064-您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以获得正确的语法,以便在“if(product\u quantity 50,50,0)”附近使用 master_stock 20号线在哪

5vf7fwbs

5vf7fwbs1#

直列 product_quantity IF(product_quantity > 50, 50, 0) 如果不能这样使用。你应该使用 case 而不是声明。
试试这个

INSERT INTO `received_order`(
    `retailer_name`,
    `order_id`,
    `dboy_username`,
    `product_id`,
    `quantity`,
    `create_date`,
    `timestamp`,
    `payment_status`,
    `delivery_status`,
    `device_type`
)
VALUES(
    'ankur',
    'OD123',
    'manish',
    'PIDEAB565',
    (
    SELECT
        case when `product_quantity`>50 then 50 else 0 end
    FROM
        `master_stock`
    WHERE
        `product_id` = 'PIDEAB565'
),
'',
'',
'',
'',
''
)

相关问题