创建视图时出错使用mysql中的ifnull函数

时间:2013-04-21 02:23:17

标签: mysql

select g.id, ifnull(s.count, 0)
from t_goods g
left join v_stock s on g.id = s.id

这个sql运行良好,然后我创建了一个视图:

create or drop view v_goods_stock as
select g.id, ifnull(s.count, 0)
from t_goods g
left join v_stock s on g.id = s.id

我收到错误:

  

[Err] 1064 - 您的SQL语法错误

我的mysql版本是5.5。

我尝试删除像这样的ifnull函数

create or drop view v_goods_stock as select g.id id, s.count c from t_goods g left join v_stock s on g.id = s.id

我仍然得到同样的错误。

2 个答案:

答案 0 :(得分:2)

您必须为计算值指定列名:

create or replace view v_goods_stock as
select g.id, ifnull(s.count, 0) as count
from t_goods g  
left join v_stock s on g.id = s.id

默认列名是表达式本身ifnull(s.count, 0),它不是有效名称(包含括号,逗号等)

答案 1 :(得分:0)

您的问题非常简单,与IFNULL()无关:MySQL无法识别语法CREATE OR DROP VIEW。 (Here's the syntax reference for CREATE VIEW.

删除单词OR DROP,或者如果在视图已存在时需要此语句,则将其替换为OR REPLACE