我想选择表格中的最后一条记录并更新其名称。
UPDATE item
SET name = (SELECT name FROM pds
WHERE id = 9)
WHERE id=(SELECT id ORDER BY id DESC LIMIT 1);
但是,当为所有记录更改执行名称时。
也试过:
UPDATE item
SET name = (SELECT name FROM pds
WHERE id = 9)
WHERE id=(SELECT id FROM item ORDER BY id DESC LIMIT 1);
答案 0 :(得分:3)
在MySQL中,您可以将func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
print("webView:\(webView) decidePolicyForNavigationAction:\(navigationAction) decisionHandler:\(decisionHandler)")
let app = UIApplication.sharedApplication()
let url = navigationAction.request.URL
let myScheme: NSString = "https"
if (url!.scheme == myScheme) && app.canOpenURL(url!) {
print("redirect detected..")
// intercepting redirect, do whatever you want
app.openURL(url!) // open the original url
decisionHandler(.Cancel)
return
}
decisionHandler(.Allow)
}
和order by
条款应用于limit
语句:
update
答案 1 :(得分:0)
只需使用limit
和order by
:
update item
set name = (select name from pds where id = 9)
order by id desc
limit 1;
你的第二个版本应该可行。 。 。除了MySQL可能会生成语法错误。尝试:
UPDATE item i CROSS JOIN
(SELECT MAX(i2.id) as maxid FROM item i2) mi
SET i.name = (SELECT pds.name FROM pds WHERE pds.id = 9)
WHERE i.id = mi.maxid;
第一个版本在语法上是正确的,但它没有FROM
子句,因此它使用外部查询中的id
值 - 并且仅检查id
是否相等对自己。在select
或where
子句中使用子查询时,始终使用限定列名。我建议一直这样做,但这对于这些子句中的子查询尤为重要。