在MySQL中,我如何找到第一次出现值的行号?
E.G。,如果我的查询返回的数据是
value1
value1
value1
value1
value2
value2
value1
如果在1
上搜索,我希望返回value1
正在搜索5
和value2
。
这可能吗?我无法找到相关文档。
答案 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