php - 选择出生日期为 +/- 5 年(PHP dob 变量)的人

标签 php mysql

假设我的 DoB 是 1975-04-28,存储在变量 $dob

我想获取出生 +/- 5 岁的人,所以介于 1970-04-28 和 1980-04-28 之间。

这是我到目前为止得到的:

SELECT id, username FROM tusers 
WHERE profile_picture IS NOT NULL
AND settings LIKE '1,%' 
AND sex = :sex
AND last_visit BETWEEN CURDATE() - INTERVAL 21 DAY AND CURDATE()

谢谢

编辑:人们的 DoB 在数据库中存储为 dob 列,格式为:1989-06-30。

Edit2:我在查询中没有 WHERE dob 子句,因为到目前为止我尝试的一切都失败了。

最佳答案

WHERE dob BETWEEN ? - INTERVAL 5 YEAR AND ? + INTERVAL 5 YEAR

? 代表匿名占位符,在执行时使用您的 $dob 变量进行参数化。鉴于您在别处使用命名占位符(例如 :sex),您可能希望在这里也使用命名占位符——但请记住,您不能多次使用相同的参数名称,因此您需要使用例如:dob1:dob2

关于php - 选择出生日期为 +/- 5 年(PHP dob 变量)的人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19995538/

相关文章:

php - 无法显示 Laravel 数据透视表中的所有记录

mysql - MySQL 中的 "FOR XML AUTO"相当于什么? (用于表示行的 XML 字符串)

mysql - 我的触发器语句出错

mysql - 从表 1 中获取表 2 中未显示的记录

mysql - 如何在 'USE database' 语句中使用用户变量

mysql - varchar(50) 可以插入的最大数据大小是多少;

php - 使用带有 PDO 的用户 ID 更新用户信息

php - 这个代码是什么意思...?

php - Laravel hasMany 方法不起作用

php - Drupal 用户关系查询将获取 Count Common Friend