Mysql 使用选择器创建函数计数总单元格的SQL查询

Mysql 使用选择器创建函数计数总单元格的SQL查询,mysql,sql,phpmyadmin,sql-function,Mysql,Sql,Phpmyadmin,Sql Function,我正在使用phpMyAdmin并尝试创建一个创建函数的SQL查询 DELIMITER $$ CREATE FUNCTION get_totalLanguages(_CountryCode CHAR(3)) RETURNS INT BEGIN DECLARE totalLang INT; SET totalLang = SELECT count(DISTINCT Language) FROM countrylanguage WHERE (CountryCode == _CountryCod

我正在使用phpMyAdmin并尝试创建一个创建函数的SQL查询

DELIMITER $$
CREATE FUNCTION get_totalLanguages(_CountryCode CHAR(3)) RETURNS INT
BEGIN
  DECLARE totalLang INT;
  SET totalLang = SELECT count(DISTINCT Language) FROM countrylanguage WHERE (CountryCode == _CountryCode);
  RETURN totalLang;
END$$
DELIMITER 
该表如下所示:

+=============+==========+
|    countrylanguage     |
+=============+==========+
| CountryCode | Language |
+=============+==========+
|         USA |   English|
+-------------+----------+
|         USA |   Spanish|
+-------------+----------+
|         USA |    French|
+-------------+----------+
|         MEX |   Spanish|
+-------------+----------+
|         MEX |   English|
+-------------+----------+
|         GER |    German|
+-------------+----------+
|         GER |   English|
+=============+==========+
我希望能够使用countrycode参数调用函数。然后,该函数将计算该国家/地区代码中存在多少种不同的语言,然后将该计数作为整数返回。目前,这个查询没有给我任何错误,但没有做任何事情

get_totalLanguages('MEX')应返回2

get_totalLanguages('USA')应返回3

等等


谢谢

尝试选择函数调用的返回值

DELIMITER $$
CREATE FUNCTION get_totalLanguages(_CountryCode CHAR(3))
RETURNS INT
BEGIN
  DECLARE totalLang INT;
  SELECT count(DISTINCT Language) into totalLang FROM countrylanguage WHERE CountryCode = _CountryCode);
  RETURN totalLang;
END$$
DELIMITER

选择get_totalLanguages('MEX')

hmm,这一个在CounterCode==\u countrycode上给了我一个错误。看看我的编辑,不应该在MySQL中使用双等号表示相等。是的,这就是问题所在。谢谢