2017-05-08 62 views
0

我試圖讓最小的ID(由世界)未通過該SQL查詢中使用:兩個*相同* SQL語句在phpMyAdmin表現不同VS的NodeJS

"SELECT MAX(`objects`.`id`) as nextID FROM `objects` WHERE `objects`.`world`='1'" 

的NodeJS:

var mysql = require('mysql'); 
var pool = mysql.createPool({ 
    connectionLimit: 10, 
    host: '********', 
    user: '*********', 
    password: '*******', 
    database: databaseName 
}); 

function getNextObjectID(worldID, cb) { 
    var q = "SELECT MAX(`objects`.`id`) as nextID FROM `objects` WHERE `objects`.`world`='"+worldID+"'"; 
    console.log(q); 
    pool.query(q, function(err, results, fields) { 
     console.log(err); 
     console.log(results); 
     console.log(fields); 
    }); 

} 

此前,我有一個更深入的方法,其中包括以前使用的ID,但它也有這個問題,所以我已經恢復到這個更簡單的方法。

我通過節點和phpmyadmin運行它。當節點這樣做時,它會自動插入世界ID(是的,我打印出實際的查詢,並得到它在執行時是相同的)。當phpmyadmin執行時,它返回14.當節點執行其很少14和大部分時間爲空。我不知道它爲什麼會改變。所有其他查詢的行爲正常。

+0

查詢看起來很好。 – zerkms

+1

你可以顯示請你的node.js代碼?也許這是競賽條件問題... –

+0

我將它添加到帖子。 –

回答

0

有一個異步刪除被別人調用,它在插入大量行之前讀取下一個id。

相關問題