使用if语句的Mysql语法错误1064

时间:2012-08-14 13:28:50

标签: mysql sql mysql-error-1064

我正在尝试运行以下查询:

 (IF(book.book_type_id = "1", IF(inventory.cost < (follette_title.usedbuyingprice *1.37), follette_title.usedbuyingprice*1.37)), inventory.cost) AS Cost,

试图查看图书类型是否为1,然后检查成本是否低于使用购买价格* 1.37的饼干,如果是,那么设置价格为follette使用的购买价格* 1.37,如果没有那么成本是成本。 我一直收到这个错误:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')), inventory.cost) AS Cost,
        (concat(IFNULL(buyer_type.buyer_type, ""),IFNUL' at line 11

我不知道为什么。手册没有给出明确的理由,并且在此之前我有很多行,它们相似但没有错误。 有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

我认为你错位了')'

您需要的是

(IF(book_type.book_type_id = "1", IF(inventory.cost < follette_title.usedbuying_price *1.37, follette_title.usedbuying_price*1.37, ""), inventory.cost)) AS Cost

而不是

(IF(book.book_type_id = "1", IF(inventory.cost < (follette_title.usedbuyingprice *1.37), follette_title.usedbuyingprice*1.37)), inventory.cost) AS Cost,