Php 在MYSQL语句中可以执行if/else逻辑吗?

Php 在MYSQL语句中可以执行if/else逻辑吗?,php,mysql,Php,Mysql,我的数据库里有足球运动员。他们每个人都有一个排名(1是最好的),我在MYSQL查询中动态计算他们的年龄。该查询使用他们的排名加上他们的年龄进行排序。所以我首先有这个 $rankquerytext="ranking + age"; 然后我有一个疑问 $sql = "SELECT *, FLOOR(DATEDIFF(CURDATE(), born) / 365.25) AS age FROM players ORDER BY " . $rankquerytext . ""; 这

我的数据库里有足球运动员。他们每个人都有一个排名(1是最好的),我在MYSQL查询中动态计算他们的年龄。该查询使用他们的排名加上他们的年龄进行排序。所以我首先有这个

$rankquerytext="ranking + age";
然后我有一个疑问

$sql = "SELECT *, FLOOR(DATEDIFF(CURDATE(), born) / 365.25) AS age 
    FROM players
    ORDER BY " . $rankquerytext . "";
这个很好用。不过,我想说得更具体一点,而不仅仅是在排名中加上他们的年龄。例如,我更喜欢在MySQL查询中执行if/else,或者在它之前执行if/else,例如

if (age < 25) {
$ageadjustment=-5;
} else if (age >= 29) {
$ageadjustment= 8;
} else {
$ageadjustment=0;
}
if(年龄<25岁){
$AGE调整=-5;
}否则,如果(年龄>=29岁){
$AGE调整=8;
}否则{
$AGE调整=0;
}
然后我想在他们的排名中加上“$ageadjustment”,而不是“age”

例如,当使用“排名+年龄”时,如果卡尔文·约翰逊排名为#1,那么他的最终数字顺序为30(1+29)

理想情况下,使用“排名+年龄调整”,他将是9(1+8)

这可行吗?我的mysql知识有限,但这似乎不可行

谢谢

您可以使用操作员,如下所示:

$rankquerytext=“排名+调整”;
$sql=“选择*,
楼层(DATEDIFF(CURDATE(),born)/365.25)小于25然后-5时的情况
当FLOOR(DATEDIFF(CURDATE(),born)/365.25)>=29时,则为8
其他0
以…结尾
订购人”$rankquerytext;

我想知道你是否用谷歌搜索过这个@你应该把这个作为答案!!!他们什么时候把这个放进MySQL的?