根据mysql查询中的列值过滤行 [英] filter rows based on column values in mysql query

查看:41
本文介绍了根据mysql查询中的列值过滤行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的mysql查询

This is my mysql query

SELECT a.model_name, 
       IF( b.officially_released_year = '".$currentyear."',1,0 ) AS release_year, 
       IF( b.officially_released_month = '".$first_month."' OR b.officially_released_month = '".$second_month."' OR b.officially_released_month = '".$third_month."' OR b.officially_released_month = '".$currentmonth."' ,1,0) AS release_month 
FROM ".TBL_CAR_ADD_MODELS." a, ".TBL_CAR_SPEC_GENERAL." b 
WHERE a.model_id = b.model_id AND a.model_status = '1' 
ORDER BY a.model_created_on DESC

我想在这个查询中再做一个过滤选项.我需要根据 release_year = 1 & 获取记录release_year = 1. 我已经通过 MYSQL QUERY 中的 IF STATEMENT 做了 release_year 和 release_month 列

I want to do one more filtering option in this query. I need to get the records based on release_year = 1 & release_year = 1. I have done release_year and release_month columns through IF STATEMENT in MYSQL QUERY

发布年份

IF( b.officially_released_year = '".$currentyear."',1,0 ) AS release_year

release_month

release_month

IF( b.officially_released_month = '".$first_month."' OR b.officially_released_month = '".$second_month."' OR b.officially_released_month = '".$third_month."' OR b.officially_released_month = '".$currentmonth."' ,1,0) AS release_month

如何根据此查询中的这些值 (release_month = 1 & release_year = 1) 获取记录?我试过 WHERE release_month = 1 AND release_year = 1 但这个返回未知列

How do I get the records based on these values (release_month = 1 & release_year = 1) in this query? I have tried WHERE release_month = 1 AND release_year = 1 but this one returns unknown column

推荐答案

你可以这样做:

SELECT
    *
FROM
(
SELECT 
    a.model_name,
    a.model_created_on, 
    IF( b.officially_released_year = '".$currentyear."',1,0 ) AS release_year, 
    IF( b.officially_released_month = '".$first_month."' OR b.officially_released_month = '".$second_month."' OR b.officially_released_month = '".$third_month."' OR b.officially_released_month = '".$currentmonth."' ,1,0) AS release_month 
FROM ".TBL_CAR_ADD_MODELS." a, ".TBL_CAR_SPEC_GENERAL." b 
WHERE a.model_id = b.model_id AND a.model_status = '1' 

) AS tbl
WHERE tbl.release_year=1 AND release_month=1
ORDER BY tbl.model_created_on DESC

这篇关于根据mysql查询中的列值过滤行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆