【问题标题】:MySQL Comparing field using concat with two fieldsMySQL使用concat比较字段和两个字段
【发布时间】:2012-06-03 06:15:43
【问题描述】:

我有以下 MySQL 查询:

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

查询正在拉回未来和过去的结果。知道我在这里做错了什么吗?

【问题讨论】:

    标签: mysql concatenation


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!我应该更加注意我的语法哈哈。由于遗留数据库,我最终不得不做一些不同的事情(编写 Ruby 脚本)。数据库有 3 个不同的 expire_{type} 列。旧系统使用 exp_month 和 exp_year,而新系统使用 expire_date。 Exp_year 和 Exp_month 是 varchar,而 expiration_date 是 datetime。所以我必须对字符进行一些转换才能使其正常工作
    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    相关资源
    最近更新 更多