我有这样一种情况,我想为多个城市的不同产品生成发票id。我想得到根据不同的产品和城市生成的发票id。
我的table temp
看起来像
id |order_id |product|city|invoice_id
1 | 123 | 1 | 1 | FPU1
2 | 124 | 6 | 1 | PPU1
我想要下一个 invoice_id
对于产品1和城市1是fpu2。
产品1和城市2为fbn1,产品6和城市1为ppu2,依此类推。。。。
我创建了函数但没有运行。函数有什么问题吗?
CREATE function generate(p_id INT, c_id INT)
returns VARCHAR(50)
BEGIN
-- DECLARE v_new_id VARCHAR(50);
SELECT Concat(( CASE
WHEN t.product = 1 THEN "f"
WHEN t.product = 6 THEN "p" end ),
c.city_name, Cast(RIGHT(t.invoice, Length(t.invoice) - 3) AS UNSIGNED) + 1
) v_new_id
FROM temp AS t
JOIN city c
ON c.city_id = t.city
WHERE t.product = p_id
AND t.city = c_id;
RETURN( v_new_id );
end;
获取语法错误:
# 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 '' at line 15
1条答案
按热度按时间rlcwz9us1#
需要设置分隔符。
感谢@p.salmon提供宝贵的评论和链接
对于手动设置分隔符
对于phpmyadmin用户,请访问以下链接