我有几张桌子
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
但它不起作用
答案 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 ....