查询中的Mysql“IF”

时间:2012-05-07 05:16:39

标签: mysql if-statement

我有几张桌子

table201202
table201203
table201204
table201205  
...
tableversion

tableversion我有专栏: Version_ID Admin_ID MONTH YEAR

我需要得到类似的东西

Select *
FROM tableversion
LEFT JOIN table(tableversion.month tableversion.year) on
    table(tableversion.month tableversion.year).Version_ID=tableversion.version_id

但是在tableversion中我有几个月没有领先0所以我必须检查是否有5然后将其更改为05,如果变量是12则没有。我该怎么办?

好的,现在我有类似的东西

SELECT *, CONCAT('table',IF(tableversion.month < 10, CONCAT('0', tableversion.month ), tableversion.month ),year) as year
FROM tableversion
LEFT JOIN year ON tableversion.version_id=year.version_id WHERE ADMIN_ID=11

#1146 - Table 'database.year' doesn't exist

但它不起作用

3 个答案:

答案 0 :(得分:3)

here所示,请使用LPAD:

  

选择LPAD(月,2,'0')......

答案 1 :(得分:1)

在您关注比较月份的区域试试这个

IF(tableversion.month < 10, CONCAT('0', tableversion.month), tableversion.month)

答案 2 :(得分:1)

我认为IF陈述可能表现不佳,但我没有数据支持这种说法。

您可以尝试使用IF语句的替代方法来实现相同的目标: SELECT *, LPAD(month, 2, '0') as month2 ....