试图将avg转换为小数,语法错误

时间:2016-06-19 14:59:55

标签: mysql sql

我试图将我的avg值转换为小数,但是出现语法错误:

  

1064您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本,以获得正确的语法   接近' INT,平均(item_price))为total_price,count(basket_item)a'在   

中的第4行

我的sql:

SELECT 
      item_id, 
      item_name, 
      CONVERT(INT, avg(item_price)) as total_price, 
      count(basket_item) as quantity, 
      item_price 
FROM basket b, items i
WHERE b.basket_user = ? 
AND i.item_id = b.basket_item  
AND i.item_quantity > 0

我也尝试过施法,但是我得到了同样的错误,我正在使用xampp php 7版本

1 个答案:

答案 0 :(得分:0)

avg正在返回DECIMAL。下面的代码应该可以解决问题。

More information on casting

SELECT CAST(2.234 AS UNSIGNED) FROM DUAL;

SELECT 
      item_id, 
      item_name, 
      CAST(avg(item_price) AS UNSIGNED) as total_price, 
      count(basket_item) as quantity, 
      item_price 
FROM basket b, items i
WHERE b.basket_user = ? 
AND i.item_id = b.basket_item  
AND i.item_quantity > 0