php - 如何在使用 mysql php 查询别名列之间运行

标签 php mysql

我正在研究一个搜索表单,用户可以选择从到的年龄。然后根据搜索显示结果。

我的表有这些(name、dob、emailid、mobileno)列

这是我的问题

SELECT name,dob, YEAR(CURDATE()) - YEAR(dob) AS age AND age (BETWEEN '25' AND '30') FROM users

在这里,我可以根据 dob(DateofBirth) 获取年龄,但无法在查询之间运行...

怎么做?我是不是漏掉了什么?

请帮助我。

提前致谢

最佳答案

除了查询中的一些语法错误外,主要问题是:您不能在 SELECT 列 中使用别名 - 您的查询的一部分在 WHERE 中-部分。这与 SQL 在 SELECT 列 之前执行 WHERE 这一事实有关。只需将您的公式也包含在 WHERE 部分:

SELECT 
    name, 
    dob, 
    YEAR(CURDATE()) - YEAR(dob) AS age 
FROM users
WHERE YEAR(CURDATE()) - YEAR(dob) BETWEEN '25' AND '30'

旁注:看看问题 How to calculate age (in years) based on Date of Birth and getDate()因为您的公式并不总是给出正确的结果(例如,对于出生日期“2000 年 12 月 1 日”和当前日期“2017 年 7 月 29 日”,它返回 17,而它应该是 16)

关于php - 如何在使用 mysql php 查询别名列之间运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45388172/

相关文章:

java - 在 Java 中检测 mime 类型,结果错误

Mysql Invalid character 错误绕过

未创建 MySQL 二进制日志文件 - Windows XP

php - 将 MySQL 查询结果传递到 PHP session 登录

php - Json 和图像

php - 如何使用嵌套 do while 循环从数据库获取菜单和子菜单?

MySQL - 日期范围内的工作天数

mysql - If then join else 其他加入

php - AJAX 分页添加数据而不是替换数据

php - 如何使用 Laravel 显示基于 hasmany 关系的记录