MYSQL SELECT IN IF语句
这是一个如此简单的问题,但我已经有两个小时没有找到答案了 如何使用MYSQL IF语句。不管我放了什么,它都不起作用。在SQL Server中,这是一个5秒的作业 它需要在一个程序中吗 能否在IF语句中使用SELECT 这里对IF函数不太感兴趣MYSQL SELECT IN IF语句,sql,mysql,if-statement,Sql,Mysql,If Statement,这是一个如此简单的问题,但我已经有两个小时没有找到答案了 如何使用MYSQL IF语句。不管我放了什么,它都不起作用。在SQL Server中,这是一个5秒的作业 它需要在一个程序中吗 能否在IF语句中使用SELECT 这里对IF函数不太感兴趣 谢谢您的帮助。您正在寻找案例时 如果手册中已有 我想@Nanne链接更相关。只是把它添加到这里的链接列表中 您可以从同一查询中选择另一个字段,但可能不支持使用select query 由于查询可以返回多个值,mysql不支持列中的行概念 SELECT I
谢谢您的帮助。您正在寻找
案例时
如果手册中已有
我想@Nanne链接更相关。只是把它添加到这里的链接列表中 您可以从同一查询中选择另一个字段,但可能不支持使用select query 由于查询可以返回多个值,mysql不支持列中的行概念
SELECT IF(`field1`>1,`field2`,`field3`) FROM TABLE1 WHERE 1
这里的field1
,field2
,field3
是同一个表中的字段
这对你有帮助吗?你在报告中暗示了这一点,但这里没有一个答案明确说明这一点,因此我将:
在MySQL中,不能在存储过程的主体之外使用。文档在引入“存储程序的IF语句”(我的重点)这一概念时暗示了这一点
就我所见,在命令行提示符下或通过客户端(例如,从PHP)发出的语句中没有简单的方法来控制执行流,除非通过查询值,然后在MySQL之外基于这些值切换控制流(即使用PHP的if
语句而不是MySQL)。不过,我希望在这一点上得到纠正:-)
您可以使用其他构造在个案基础上对此进行模拟。 例如:
IF x THEN
INSERT INTO mytable (mycol)
VALUES ('foo')
END IF
可能成为
INSERT INTO mytable (mycol)
SELECT 'foo'
FROM dual
WHERE x
(根据)
您还可以创建、调用然后删除新存储过程:
DELIMITER \\
CREATE PROCEDURE tmpfunc() BEGIN
IF x THEN
INSERT INTO mytable (mycol)
VALUES ('foo');
END IF;
END \\
DELIMITER ;
CALL tmpfunc();
DROP PROCEDURE tmpfunc;
(根据)如何使用select中的
IF
语句
select if(status>0, 'active', 'inactive') as status from users
是的,如果
例如:
select if((select count(*) from versions) > (select count(*) from groups), true, false) as value
说明了一种可能与此相关的方法
请注意,我假设这个问题是问“如何使用表中的数据来引导可能会改变数据库其他部分的控制流?”
它需要在一个程序中吗
是的,您确实需要处于使用if语句的过程中
能否在IF语句中使用SELECT
是的,你可以:
drop procedure if exists sp;
create procedure sp () begin
if ((select 1 /*from whatever table would work*/)=1) then
select 'it works';
end if;
end;
call sp;
drop procedure sp;
你在问什么?您对IF不太感兴趣,但想知道如何使用IF?如果你在两小时内没有发现任何东西,你有没有看这里@Nanne-我猜OP是在问如何在MySQL脚本中使用
。e、 g.如果不存在(…)则创建表
。我记得以前在MySQL workbench中尝试过这样做,但一直没有弄清楚。@Martin可能是。如果
是对Google中MySQL手册的参考,则导致的第一个结果。如果@tura给出一个用例,那就更好了。我在看if语句,而不是用于流控制的if()函数。但是,它没有提到它不能在过程体之外使用,我正试图这样做是为了调试目的。在这种情况下,程序将为我的目的工作,只是恼人的是,文档中没有提到这一事实。谢谢你的快速回复。问题是关于
drop procedure if exists sp;
create procedure sp () begin
if ((select 1 /*from whatever table would work*/)=1) then
select 'it works';
end if;
end;
call sp;
drop procedure sp;