0

这是我的数据库中所有数据的函数。我只想要数据库中的最后四个数据。

function spelerWeergeven()
{
    db.transaction(function(tx)
    {
        tx.executeSql('SELECT * FROM speler', [], function (tx, results)
        {
            var len = results.rows.length, i;
            if(len > 0)
            {
                $('#spelerTabel').replaceWith('<table id="spelerTabel"><tr><th>Spelers</th></tr></table>');
                $('#spelerTabel').hide();
                for(var i = 0; i< len; i++)
                {
                    $('#spelerTabel tr:last').after('<tr><td>'+results.rows.item(i).naam+'</td></tr>');
                }
                $('#spelerTabel').show('slow');
            }
            }, null);
    }
    );
}

有人知道答案吗?

4

3 回答 3

0
SELECT * FROM `speler` ORDER BY `id` DESC LIMIT 4;
于 2012-11-12T11:30:02.230 回答
0

这应该工作

SELECT *
FROM `speler`
ORDER BY `id` DESC
LIMIT 4;

(反引号 (`) 用于防止 SQL 将它们之间的单词作为关键字读取。记住这一点是件好事,因为 SQL 中有很多很多关键字。)

编辑:

由于您已经创建了一个名为speler的表,其列id(这是主键)和naam使用 query CREATE TABLE IF NOT EXISTS speler (id INTEGER PRIMARY KEY, naam),我们知道您的主键列是id

PS:按照惯例,让表名以大写字母 ( Speler ) 开头是一件好事。

于 2012-11-12T12:20:04.640 回答
0

这将在服务器端完成:

SELECT TOP 4 * FROM 
speler
ORDER BY id DESC

使用 Linq 也很干净:

//dc would be a linq datacontext
string cmd = @"SELECT TOP 4 * from speler order by id DESC";
IEnumerable<speler> fourItems = dc.ExecuteQuery<speler>(cmd);
于 2013-03-19T15:29:33.110 回答