我尝试通过REST API修补对象。我的查询有问题......
// query
var query = "UPDATE users SET \
first_name = CASE WHEN $3 != '' THEN first_name = $3 ELSE first_name = first_name END, \
last_name = CASE WHEN $4 != '' THEN last_name = $4 ELSE last_name = last_name END, \
date_updated = now()\
WHERE username = $1"
// params
var params = [
request.params.user_id,
request.body.first_name || '',
request.body.last_name || ''
];
// query runs
sharedPgClient.query(query,params,function(err, res){
callback(err, res);
});
我得到的是成功,但每一栏都设置为" false"除了我没有设置的用户名。我没有将anythign设置为tru / false。我尝试过不同的价值观,但我迷失了。请帮忙
答案 0 :(得分:1)
您正在做的是在一个案例中使用first_name = $3
表达式的结果,在另一个案例中使用first_name = first_name
。两者都是布尔值。
你想写的可能是:
... SET first_name = CASE WHEN $3 <> '' THEN $3 ELSE first_name END ...
同样为last_name
。
答案 1 :(得分:1)
@(Html.Kendo().Grid<FModel>()
.Name("FStuff")
.Columns(c =>
{
c.Bound(m => m.Date);
c.Bound(m => m.Location);
c.Bound(m => m.Name);
c.Bound(m => m.PurchaseOrderID);
c.Bound(m => m.Start); // time column
c.Bound(m => m.End); // time column
})
.Pageable(p => p
.Enabled(true)
.PageSizes(new List<int> { 10, 25, 999 })
.Refresh(true))
... other options ...
和when
子句采用值,而不是SQL片段。 else
,例如,是一个布尔表达式,可以评估为first_name = $3
或true
,具体取决于false
的值。相反,您只需要使用您尝试设置的值:
first_name