你能为我优化这个SQL查询吗?

时间:2010-07-17 19:40:09

标签: sql mysql

我在2个mysql_query调用中运行此查询。我想做最高性能的事情并在一个查询中运行它。任何人都可以为我优化这个:

if(mysql_num_rows(eq("select * 
                        from player_data 
                       where uid = $uid")) == 0 )
      eq("update player_data 
             set uid = $uid, 
                `stat`= REPLACE(`stat`, '$temp_uid', '$uid') 
           where uid = $temp_uid");

注意:eq只是mysql_query

的包装函数

3 个答案:

答案 0 :(得分:2)

你可以尝试:

eq("update player_data 
       set uid = $uid, 
           `stat`=REPLACE(`stat`, '$temp_uid', '$uid') 
     where uid=$temp_uid 
       and not exists (select * 
                         from player_data 
                        where uid = $uid)");

答案 1 :(得分:0)

if(mysql_num_rows(eq("select 1 from player_data where uid=$uid")) == 0 )
      eq("update player_data set uid=$uid, `stat`=REPLACE(`stat`, '$temp_uid', '$uid') where uid=$temp_uid");

如果您只想获取表格中的行数,请避免使用select *

答案 2 :(得分:0)

A的答案是否非常好,如果你确实需要选择一个字段来指定它。选择一切对于表现来说太糟糕了。