gpt4 book ai didi

MySQL 条件选择

转载 作者:行者123 更新时间:2023-11-30 23:36:42 25 4
gpt4 key购买 nike

我整晚都在努力让下面的查询生效:

SELECT user.username, user.email, user.id, user.last_mail, us.24hr
FROM wine_users user, wine_subscriptions sub, wine_user_settings us
WHERE user.id = sub.user_id
AND us.id = user.id
AND sub.wine1 = 'yes'
AND user.receive_mail = 'yes'
AND if(24hr = 'yes') user.last_mail >= DATE_SUB (user.last_mail INTERVAL 1 DAY)

基本上,我有 3 个表,包含用户名 (wine_users)、订阅 (wine_subscriptions) 和用户设置 (user_settings)

我想要的是选择在 us.24hr 中选择 NO 或在 us.24hr 中选择 YES(在 us.24hr 中存储为 ENUM"is"“否”)并且没有收到 e- 的用户最近 24 小时内的邮件(这在 user.lastmail 中存储为 TIMESTAMP)

任何帮助都会阻止我从左鼻孔撕裂自己的大脑! :)

谢谢 :)

塞布


哇!你们太棒了! :) 尝试了所有的建议,但它们都返回以下错误:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTERVAL 1 DAY))) LIMIT 0, 30' at line 8

我猜这与不喜欢 user.last_mail 字段的 TIMESTAMP 格式的 DATE_SUB 命令有关...这是否正确?如果正确,我该如何处理?

为清楚起见,该脚本是一个页面的一部分,该页面每小时由 chron 触发一次,这是我为我和几个 friend 所做的。
它检查 Tesco Wines 是否有“神秘酒包” (因为网页设计总是用便宜的酒更好!)
如果它可用(每周只发生一次左右),它会通过电子邮件向用户数据库中的任何人发送电子邮件,这些人要么将 24 小时设置为否(即它 e - 在产品可用时每小时向他们发送邮件)或将 24 小时设置为 YES 并且在过去 24 小时内未收到电子邮件
(因此 last_mail 字段记录了最后一封电子邮件时的时间戳)邮件已发送)

非常感谢您的回复!

Seb :)

最佳答案

看看这是否有效。

SELECT user.username, user.email, user.id, user.last_mail, us.24hr
FROM wine_users user, wine_subscriptions sub, wine_user_settings us
WHERE user.id = sub.user_id
AND us.id = user.id
AND sub.wine1 = 'yes'
AND user.receive_mail = 'yes'
AND ( (24hr = 'yes' AND user.last_mail >= DATE_SUB (user.last_mail INTERVAL 1 DAY)) OR 24hr='no')

关于MySQL 条件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768451/

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