我有两个问题。一个选择行,另一个设置行值;
mysql_query("SELECT * from messages where user='12'");
mysql_query("UPDATE messages set read='yes' where user='12'");
是否可以使用if语句使用一个查询使其工作?如果读取行不等于是,则更新?
答案 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取自,
答案 1 :(得分:1)
可能有一种方法可以使用存储过程执行此操作,但通常,不,检索和更新是SQL中的不同操作。
如果您关注的是确保只更新您阅读的邮件(如果在选择和更新调用之间将新邮件添加到系统中),则需要指定特定的邮件ID更新更新语句的where子句。