MySQL 有没有办法在单个语句 t 中更新并选择更新的行?
我可以加入 SELECT 和 UPDATE 语句吗?如果是,我该怎么做?
我有一个名为 news 的表。
我在我的网站上显示新闻。如果有人阅读新闻,我会将 1 添加到 点击。我通过两个查询来做到这一点:
mysql_query("SELECT * FROM news WHERE id=2 LIMIT 1");
mysql_query("UPDATE news SET hit=hit+1 WHERE id=2");
但我想加入他们。
id | title | content |hit
---+-----------+-------------------+---
1 | sdfsdfdsf | dfsdffdsfds836173 |5
2 | sfsdfds | sdfsdsdfdsfdsfsd4 |9
3 | ssdfsdfds | sdfdsfs |3
更新:OP想要更新并选择一个sql语句中更新的行。
Can I join SELECT and UPDATE statement? If yes, how can I do that?
I have table which name is news.
I show news on my website. If someone read news I add 1 to hit. I do that with 2 queries:
mysql_query("SELECT * FROM news WHERE id=2 LIMIT 1");
mysql_query("UPDATE news SET hit=hit+1 WHERE id=2");
But I want to join them.
id | title | content |hit
---+-----------+-------------------+---
1 | sdfsdfdsf | dfsdffdsfds836173 |5
2 | sfsdfds | sdfsdsdfdsfdsfsd4 |9
3 | ssdfsdfds | sdfdsfs |3
Update: the OP wants to update and select the updated rows within one sql statement.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
编写一个存储过程:
用法:
更新
顺便说一句,大多数 mysql 客户端都支持在单个语句中执行多个操作。
其常见用途是(伪 C# 代码),
它将执行插入并返回新创建记录的 id。
你可能可以做
Write a stored procedure:
Usage:
Update
By the way, most mysql clients support multiple actions in a single statement.
A common use for this is (Pseude C# Code)
which will perform an Insert and Return the id of the newly created record.
You possibly could do
任何数字字段都可以这样做(tinyint、int、float 等)。
希望这会有所帮助。
Any numeric field will do it by this (tinyint, int, float, etc).
Hope this will help.
最好的方法是编写触发器,这将增加所选新闻的命中计数
当 SELECT * FROM news WHERE id=2 LIMIT 1 触发 UPDATE news SET hit=hit+1 WHERE id=2
best way is to write trigger which will increment hit count on select news
When SELECT * FROM news WHERE id=2 LIMIT 1 Fire trigger UPDATE news SET hit=hit+1 WHERE id=2