MySQL是否可以同时选择和设置?

时间:2016-01-08 18:54:38

标签: php mysql

我有两个问题。一个选择行,另一个设置行值;

mysql_query("SELECT * from messages where user='12'");

mysql_query("UPDATE messages set read='yes' where user='12'");

是否可以使用if语句使用一个查询使其工作?如果读取行不等于是,则更新?

2 个答案:

答案 0 :(得分:1)

$result = mysql_query("SELECT * from messages where user='12'");

If (!result)
{
   //Do something
}
else
{
   mysql_query("UPDATE messages set read='yes' where user='12'");
}

另见how to check if mysql query return no result(record not found) using php?

编辑:你的问题不清楚你在问什么,但它似乎说你怎么能用if语句做你想做的事情,而不是在一个查询中做两个,如果那是我不知道那个问题意味着什么。

编辑:思考后,试试这个,

IF EXISTS (SELECT * from messages where user='12')
THEN
UPDATE messages set read='yes' where user='12'
ELSE
SELECT * from messages where user='12'

(或插入)

Cue取自,

SQL - IF EXISTS UPDATE ELSE INSERT Syntax Error

答案 1 :(得分:1)

可能有一种方法可以使用存储过程执行此操作,但通常,不,检索和更新是SQL中的不同操作。

如果您关注的是确保只更新您阅读的邮件(如果在选择和更新调用之间将新邮件添加到系统中),则需要指定特定的邮件ID更新更新语句的where子句。