Database 我需要知道如何在MySQL中编写使用和执行查询的IF语句和CASE break语句等?
我需要执行一个高度依赖于几个条件的查询,需要通过分析其他表中的数据来检查哪些条件,基本目标是从表中返回行如果其他表中的所有条件都为真,我厌倦了内部联接左联接和WHERE语句,我需要查找一个表,如果返回值是1、0或4或一组值,我需要执行另一条语句,并根据该语句的结果执行最后一条语句,这是我的最终结果 就函数和过程而言,我非常认真地研究了MySQL文档,它给我的只有以下内容:Database 我需要知道如何在MySQL中编写使用和执行查询的IF语句和CASE break语句等?,database,mysql,conditional,if-statement,Database,Mysql,Conditional,If Statement,我需要执行一个高度依赖于几个条件的查询,需要通过分析其他表中的数据来检查哪些条件,基本目标是从表中返回行如果其他表中的所有条件都为真,我厌倦了内部联接左联接和WHERE语句,我需要查找一个表,如果返回值是1、0或4或一组值,我需要执行另一条语句,并根据该语句的结果执行最后一条语句,这是我的最终结果 就函数和过程而言,我非常认真地研究了MySQL文档,它给我的只有以下内容: DELIMITER $$ CREATE DEFINER=`root`@`localhost` FUNCTION `Simp
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `SimpleCompare`(n INT, m INT) RETURNS varchar(20) CHARSET latin1
BEGIN
DECLARE s VARCHAR(20);
IF n > m THEN SET s = '>';
ELSEIF n = m THEN SET s = '=';
ELSE SET s = '<';
END IF;
SET s = CONCAT(n, ' ', s, ' ', m);
RETURN s;
END
分隔符$$
CREATE DEFINER=`root`@`localhost`函数`SimpleCompare`(n INT,m INT)返回varchar(20)字符集1
开始
声明s VARCHAR(20);
如果n>m,则设置s='>';
ELSEIF n=m然后设置s='=';
ELSE SET s=''
“我如何将s=设置为查询结果?”这让我发疯了,我无法理解语法,文档也没有解释任何内容
提前感谢据我所知,MySQL不支持表值数据类型。您发布的函数的用途是:
SELECT simplecompare(yt.n, yt.m) AS eval
FROM YOUR_TABE yt
…这将返回:
eval
--------
1 = 1
2 < 3
etc.
eval
--------
1 = 1
2 < 3
等
SQL是基于集合的,这与典型的编程(过程或OO)不同