2013-10-30 61 views
0

我想在插入前选择前10行。如果插入前没有行,那么它只是返回已插入的行mysql插入并选择带插入标识的行

插入后,我可以通过使用 mysql_insert_id();

在插入之前选择前10行是一种智能的方法。

这必须适用于区间0或10内的任何数字。所以假设它们在插入之前是7行,那么它只会返回8行。

我在考虑使用限制的,像这样

$insertid = mysql_insert_id() 
    $postid = 200 
    Select a, b, c from mytable where a = '$postid' limit $insertid 10 order by b 

但这不起作用像我承担。

+0

你是指插入10行在这一行之前?基于某些列ID的10行?或者是其他东西? – Kairan

+0

否这行不能插入10行。这10行基于变量$ postid。我编辑了我的问题 –

+0

没有ORDER BY的LIMIT没有多大意义。 “其他”行之前的“某些”行是什么意思? – Strawberry

回答

1
Select a, b, c from mytable where primary_key_col < '$insertid' and a = 200 
ORDER BY primary_key_col DESC LIMIT 10 
+0

对不起,我编辑了我的问题。您的答案会返回变量insertid之前的所有行,但我试图只将列a的行作为200. –

+0

根据您的新要求进行更新。 –

+0

为了选择插入的注释,我使用了从mytable中选择a,b,c,其中primary_key_col <='$ insertid'和a = 200 ORDER BY primary_key_col DESC LIMIT 10 –

0

您之间可以使用:

Select a, b, c from mytable where a BETWEEN $postid - 10 AND $postid 

(顺序事项)

此外,你应该如何使用,而不是MySQL的mysqli_事情