ورود

View Full Version : سوال: چجوری بفهمم که یک رکورد خاص جندمین رکورد تو رکورد هاست؟



se8820726
سه شنبه 11 تیر 1392, 20:08 عصر
سلام به تمام دوستان
آقا من یه کوئری نوشتم که حدود 200 تا رکورد رو بهم نشون میده. حالا میخوام یه کوئری بنویسم که بهم نشون بده مثلا اون رکوردی که مقدار فیلد xش برابر y است چندمین رکورد تو رکورد های نمایش داده شده است و سپس تمام رکورد های بعد از اونو بخونم.
لطفا راهنمایی کنید

hamid_hr
چهارشنبه 12 تیر 1392, 09:28 صبح
چيزي كه به ذهن من ميرسه اينه كه براساس يك ركورد مرتب بشه بعد RowNumber بخوره بعد بهش بگيم اين شماره سطر رو نشون بده و وقتي فيلتر كنيم ميگه كه شماره سطرش چند هست

select a.RowNum,a.t2 from
(select ROW_NUMBER() OVER (ORDER BY t1.IDPK ASC) AS RowNum, * from tbl1 t1) a
where a.t2 = ''

امیـرحسین
پنج شنبه 13 تیر 1392, 17:28 عصر
MySQL تابع ROW_NUMBER نداره تا جایی که من میدونم.
این میتونه کمک کنه:
SET @seq = 0;
SELECT * FROM `tbl` WHERE @seq := IF(@seq = 0, (`x` = y), 1);
یه متغیر تعریف شده که مقدارش صفره. وقتی برای اولین بار شرط x = y مقدار true بگیره ۱ میشه و همه‌ی سطرهای بعدش رو میاره.

hamid_hr
پنج شنبه 13 تیر 1392, 18:44 عصر
set @RNum = 0;
select a.RowNum,a.t2 from
(select @RNum := @RNum + 1 AS RowNum, * from tbl1 t1) a
where a.t2 = ''

mostafa_shaeri_tj
یک شنبه 16 تیر 1392, 07:51 صبح
این کویری در هر سطر شماره ردیف رو قرار میده. فکر میکنم همون چیزیه که خودت میخوای

select a.name,sum(1) as mc
from student a, student b
where a.s_id <= b.s_id
group by a.s_id, a.name order by mc;