gpt4 book ai didi

php - 选择表中日期位于同一表中另一行的 2 个日期之间的行

转载 作者:行者123 更新时间:2023-11-29 17:34:22 25 4
gpt4 key购买 nike

我想在表中选择某一行,其中日期位于同一表中另一行的开始日期和结束日期之间。我的 table 就是这样的。

============================================================================================
id newid start end date
-------------------------------------------------------------------------------------------
1 - 25/01/2018 26/02/2018 25/01/2018
2 1 27/01/2018 27/01/2018 27/01/2018
3 1 05/02/2018 05/02/2018 05/02/2018
4 1 27/02/2018 27/02/2018 27/02/2018
============================================================================================

我创建函数来通过 id 调用结果

function get($id){
global $wpdb;
$table_name = $wpdb->prefix ."myTable";
$sql = $wpdb->get_results("SELECT * FROM $table_name WHERE id='{$id}'");
return $sql;
}

我希望$sql返回$id开始日期和结束日期之间的结果通过使用 mysql 而不是 php。

最佳答案

您可以使用以下SELECT:

SELECT * 
FROM table_name t1
WHERE EXISTS (
SELECT *
FROM table_name t2
WHERE t1.date >= t2.start
AND t1.date <= t2.end
AND t1.id <> t2.id
)

demo: http://sqlfiddle.com/#!9/b197a4/4/1

现在您可以使用以下 PHP 函数 (get):

function get($id) {
global $wpdb;
$table_name = $wpdb->prefix ."myTable";
$sql = $wpdb->get_results("SELECT * FROM $table_name t1 WHERE id = '$id' AND EXISTS (SELECT * FROM $table_name t2 WHERE t1.`date` >= t2.`start` AND t1.`date` <= t2.`end` AND t1.`id` <> t2.`id`)");
return $sql;
}

关于php - 选择表中日期位于同一表中另一行的 2 个日期之间的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50416181/

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