gpt4 book ai didi

mysql - 需要 mySQL 查询来检查另一个表中更新的生日

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

我正在从第三方数据源下载数据,其中一个字段是联系人的生日,该字段可能为空,即 0000-00-00。我的用户可以选择输入联系人的生日(如果他们愿意),我认为这是在一个单独的表中,因为如果我更新原始表,每当用户使用原始数据源刷新时,所有更新的生日将会被删除。

我现在想查找 future 30 天内的所有生日。这适用于第一个(原始数据源)表:

    $BirthdayResults = mysql_query("SELECT * FROM Connections WHERE UserID='$UserID' AND (DATE_FORMAT(ContactBirthday, '%m%d') BETWEEN '$sCurrentDate' AND '$sDateOneMonthAdded')");    

所以我想知道 mySQL 是否可以处理这种类型的逻辑:

$BirthdayResults = mysql_query("SELECT * FROM Connections WHERE UserID='$UserID'... 
AND IF ContactBirthday IN Connections = '0000-00-00'
CHECK OTHER_BIRTHDAY_TABLE AND USE THIS BIRTHDAY IF IT EXISTS
WHERE Connections.ContactID=OTHER_BIRTHDAY_TABLE.ContactID

最佳答案

SELECT *
FROM Connections LEFT JOIN OTHER_BIRTHDAY_TABLE USING(ContactID)
WHERE UserID='$UserID'
AND DATE_FORMAT(
IF(
Connections.ContactBirthday = '0000-00-00',
OTHER_BIRTHDAY_TABLE.BIRTHDAY,
Connections.ContactBirthday
),
'%m%d'
) BETWEEN '$sCurrentDate' AND '$sDateOneMonthAdded'

但是,在这种情况下,NULL0000-00-00 更合适;在这种情况下,可以使用 MySQL 的 IFNULL()COALESCE()函数替代:

       DATE_FORMAT(
IFNULL(Connections.ContactBirthday, OTHER_BIRTHDAY_TABLE.BIRTHDAY),
'%m%d'
)

关于mysql - 需要 mySQL 查询来检查另一个表中更新的生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12872114/

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