2012-05-29 55 views
2

比较使用CONCAT场,我有以下MySQL查询:MySQL的两个字段

SELECT concat_ws('/', exp_month, exp_year) as exp_date 
FROM `cc_info` 
WHERE concat_ws('/', exp_month, exp_year) <= '05/12' 

查询被拉回导致未来以及过去。任何想法我在这里做错了吗?

回答

2

您按字典顺序比较字符串,并且该月份在年份之前。如果您在一个月之前放置年份,那么它们将按照正确的顺序排列:

SELECT concat_ws('/', exp_year, exp_month) as exp_date 
FROM `cc_info` 
WHERE concat_ws('/', exp_year, exp_month) <= '12/05' 
+0

谢谢!我应该更多地关注我的语法。由于遗留数据库,我最终不得不做了一些不同的事情(编写Ruby脚本)。该数据库有3个不同的expiration_ {type}列。旧系统使用exp_month和exp_year,而新系统使用expiration_date。 Exp_year和Exp_month是'varchar',而expiration_date是'datetime'。所以我必须对角色进行一些转换才能使其正常工作 – dennismonsewicz