Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 我需要知道如何在MySQL中编写使用和执行查询的IF语句和CASE break语句等?_Database_Mysql_Conditional_If Statement - Fatal编程技术网

Database 我需要知道如何在MySQL中编写使用和执行查询的IF语句和CASE break语句等?

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

我需要执行一个高度依赖于几个条件的查询,需要通过分析其他表中的数据来检查哪些条件,基本目标是从表中返回行如果其他表中的所有条件都为真,我厌倦了内部联接左联接和WHERE语句,我需要查找一个表,如果返回值是1、0或4或一组值,我需要执行另一条语句,并根据该语句的结果执行最后一条语句,这是我的最终结果

就函数和过程而言,我非常认真地研究了MySQL文档,它给我的只有以下内容:

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)不同