抱歉提问,但我以前从来没有做过如此复杂的 MYSQL 查询,而且我实际上不知道要用谷歌搜索什么才能得到答案。
我有一个制作不佳的数据库,其中包含孕妇预约表,其中包括她们来的那天和当时怀孕的周数。我正在尝试选择现在应该是 30 周但在怀孕 25 周后还没有单独条目的每一个。我使用电话号码来唯一标识每个人。
因为我真的不知道如何制定这个查询,所以这是我想出的最好的办法。
SELECT * FROM patientlist WHERE
UNIX_TIMESTAMP() - (UNIX_TIMESTAMP(`date`) - `weekspreg`*604800) > 29*604800
AND
UNIX_TIMESTAMP() - (UNIX_TIMESTAMP(`date`)- `weekspreg`*604800) <= 30*604800
AND
/* a subquery that keeps out results where the phone number would show up elsewhere in the table for a woman with more than 25 weeks of pregnancy. */
必须有一个更好的解决方案,而不是通过电话号码分别查询日期范围内的每个结果以查看 weekspreg 是否超过 25。
提前感谢您的帮助或指导。
最佳答案
您的整个 WHERE
都不正确。一个查询只能有 ONE where
子句。您使用 and
和 or
加入多个条件,而不是 and where
:
WHERE foo AND bar // correct
WHERE foo AND WHERE bar // syntax error
关于php - 用于时间戳比较的正确 MYSQL 语法和具有某些排除项的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26163278/