gpt4 book ai didi

php - 如何在mysql中使用if else语句?

转载 作者:行者123 更新时间:2023-11-29 00:15:30 26 4
gpt4 key购买 nike

在分配 where 条件之前,如何检查 mysql 中的 if else 条件?我需要查询以下逻辑。我使用 php 代码只是为了显示我想做什么。我需要一个 mysql 查询来替换 if else php 代码。我想知道我们是否可以做如果类型等于 1 然后做这个否则做这个并且类型是表的一列。

$this->db->select('startdate, enddate, type');
$this->db->from('db_date')
$this->db->where('id !=', $id);

if(`type`=1){
$this->db->where("`early` <= ABS(DATEDIFF(STR_TO_DATE(`startdate`, '%m-%d-%Y'), CURDATE())/30)");
} else if(`type`=2){
$this->db->where("`last` >= ABS(DATEDIFF(STR_TO_DATE(`startdate`, '%m-%d-%Y'), CURDATE())/30)");
}else do nothing

最佳答案

你在什么时候使用 CASE

 SELECT CASE 1 WHEN 1 THEN 'one'
WHEN 2 THEN 'two' ELSE 'more' END;
'one'

SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
'true'

SELECT CASE BINARY 'B'
WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
NULL

您还可以使用内联(和嵌套)IF

SELECT IF(score > 100, 100, IF(score < 0, 0, score)) FROM exam_results

IF+ WHERE 子句示例:

SELECT ...
WHERE ...
AND IF(myfield = 'somevalue', 1, 0) = 1

您可以将这些说明与类似 EXECUTE 的内容结合起来或者这个评估函数: http://code.openark.org/blog/mysql/mysql-eval

结果类似于:

  SELECT CASE 1 WHEN 1 THEN <call eval making a select with one type of where>
WHEN 2 THEN <call eval making a select with another type of where> END;

我会说这不是很“常规”的东西。

可能有更好、更易于维护的方法来完成您需要的事情。

关于php - 如何在mysql中使用if else语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23102251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com