如何查找查询中第一次出现值的行号?

时间:2016-04-25 13:50:45

标签: mysql sql rows

在MySQL中,我如何找到第一次出现值的行号?

E.G。,如果我的查询返回的数据是

value1
value1
value1
value1
value2
value2
value1

如果在1上搜索,我希望返回value1正在搜索5value2

这可能吗?我无法找到相关文档。

2 个答案:

答案 0 :(得分:1)

在select语句中添加行号列。

输入

yourtable
samplefield
value1
value1
value1
value1
value2
value2
value1

代码

SELECT @n := @n + 1 RowNumber, t.*
FROM (SELECT @n:=0) initvars, yourtable t

输出

SQL小提琴:即将推出! SQL Fiddle出错:(

答案 1 :(得分:-1)

感谢lolka_bolka和this answer,我提出了以下解决方案。为了节省我编辑我的实际查询,还有一些额外的信息:我试图在WordPress中找到第一次出现的不是附件的帖子类型:

SELECT `type_count` FROM (SELECT @s:=@s+1 type_count,`post_type` 
    FROM (SELECT @s:= 0) AS s, `wp_posts` 
    WHERE wp_posts.post_type IN ('post', 'attachment') 
    AND ((wp_posts.post_status = 'publish' OR wp_posts.post_status = 'inherit')) 
    AND wp_posts.post_mime_type NOT LIKE 'image/%' ORDER BY `ID` DESC) 
AS `type_counts` 
WHERE `post_type` != 'attachment' LIMIT 0,1