这个怎么样?
不需要数据库提取具体结果,只要判断表单中是否有值即可UPDATE $tblst SET stoend=UNIX_TIMESTAMP() WHERE stoend=0 AND NOT EXISTS (SELECT stoid FROM $tblmt)

解决方案 »

  1.   

    $tblmt中的数据很少的话倒也无所谓,
    $tblmt中的数据量比较大,而且stoid NOT IN (SELECT stoid FROM $tblmt) 的结果大于总数据数的1/3(?)
    表的索引就会失效,数据库自动对所有数据搜索。
    而你知道判断是否有返回值就可以了,不需要取得具体数据。所以,用EXISTS/NOT EXISTS效率更高。
      

  2.   


    UPDATE a   SET stoend=UNIX_TIMESTAMP() 
    from $tblst a left join  $tblmt b on a.stoid=b.stoid where a.stoend=0 and b.stoid=null试试这种看看