如何在 web2py dal select 查询中使用 concat?

How to use concat in web2py dal select query?

我有一个 table 如下所示,

| id | 姓名 |

| 1 |富 |

| 2 |栏 |

我想编写一个 select 查询,该查询应该 return 在 ID 之前添加一些前置文本。所以我的输出应该类似于 val_1 & val_2。 我在 web2py select 查询中看不到任何 concat 方法。为了达到我的要求,我需要单独操作结果。有没有办法在 web2py 中形成 select 查询以使用 SQL concat?

.select() 方法除了字段之外还可以将 SQL 表达式作为参数,因此您可以:

val = "'val_' || mytable.id"
rows = db(db.mytable).select(val)
print rows[0][val]

注意,当在 select 中使用表达式时,结果值存储在行对象中,其键等于 SQL 表达式本身,因此使用 [val] 从行对象中提取值。

作为上述方法的替代方法,您可以考虑使用 computed field or a virtual field.