1

是否可以先从数据库中选择,然后在同一个查询中插入数据库中的内容是否为真?

这是我现在的做法:

$sql = mysql_query("SELECT * FROM ".$prefix."_active_users WHERE userid = $playerid AND DATE(timestamp) = '$sel_tag'");
$row = mysql_fetch_assoc($sql);

if(!$row){
     mysql_query("INSERT INTO ".$prefix."_active_users (userid,timestamp) VALUES ($playerid,'$now')");
}

希望得到帮助和感谢;-)

4

2 回答 2

4

当我阅读问题时,如果不存在行,您想插入。

因此,在一个查询中...

mysql_query("

   INSERT INTO ".$prefix."_active_users (userid,timestamp)
   SELECT $playerid, '$now'
   FROM dual
   WHERE NOT EXISTS (SELECT * FROM ".$prefix."_active_users
             WHERE userid = $playerid AND   DATE(timestamp) = '$sel_tag')
    ");

这与其他答案不同INSERT.. SELECT

于 2013-01-17T08:15:32.680 回答
1
insert into YourTable
(col1, col2, ...) 
select col1, col2, ... 
where not exists
    (
    select *
    from YourTabe
    where col1 = 42
    )
于 2013-01-17T08:14:09.010 回答