mysql里面mysql -h命令作用是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql里面mysql -h命令作用是啥?相关的知识,希望对你有一定的参考价值。
mysql中-h是指定连接的MySQL服务器地址(可以是IP或者域名)常常和-p联用,表示连接到某台机器的某个端口 参考技术A -h是指定连接的MySQL服务器地址(可以是IP或者域名),h指host。里面有查询的 MySQL 函数
【中文标题】里面有查询的 MySQL 函数【英文标题】:MySQL function with query inside it 【发布时间】:2017-07-13 20:55:17 【问题描述】:我使用这个 mysql 函数通过传递三个参数来检索列数据的总和。无论 where 子句如何,函数都会返回整列的总和。 我的意思是函数内部的查询没有 where 子句,并且在没有函数的情况下使用该查询可以正常工作。 这是函数
DELIMITER $$
CREATE FUNCTION calculate_customer_loan(customer_id INT, currency VARCHAR(10), type VARCHAR(10)) RETURNS DOUBLE
BEGIN
DECLARE total DOUBLE;
SELECT SUM(`amount`) INTO total FROM `deals` WHERE `customer_id` = customer_id AND `currency` = currency AND `type` = type;
RETURN total;
END
$$
DELIMITER ;
任何想法! 帮帮我。
【问题讨论】:
重命名你的函数参数。 【参考方案1】:您的参数名称与列名称匹配存在问题。列名获胜。
所以,为参数命名以避免歧义:
DELIMITER $$
CREATE FUNCTION calculate_customer_loan (
in_customer_id INT,
in_currency VARCHAR(10),
in_type VARCHAR(10)
) RETURNS DOUBLE
BEGIN
DECLARE v_total DOUBLE;
SELECT SUM(d.amount) INTO v_total
FROM deals d
WHERE d.customer_id = in_customer_id AND
d.currency = in_currency AND
d.type = in_type;
RETURN v_total;
END
$$
DELIMITER ;
我删除了反引号。它们不是必需的,而且——更重要的是——它们不区分列名和变量名。
【讨论】:
“列名获胜” - 我不会这么说:***.com/questions/715229/… @PaulSpiegel 。 . .这个答案似乎是不正确的。 那个答案似乎是正确的。这是一个简单的测试:rextester.com/JEWVL30269 但是我仍然会使用不同的名称。 @GordonLinoff 这个答案没有错字。你从来没有真正设置过 v_total。 @Mike 。 . .谢谢。以上是关于mysql里面mysql -h命令作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章