चर और शर्तों का उपयोग करके आप एक शर्त के आधार पर काउंटर को रीसेट कर सकते हैं (लाइब्रेरी आईडी बदल गई है)। कॉलम लाइब्रेरी आईडी द्वारा ऑर्डर करना अनिवार्य है।
SELECT books.*,
if( @libId = libraryId,
@var_record := @var_record + 1,
if(@var_record := 1 and @libId := libraryId, @var_record, @var_record)
) AS Ordinal
FROM books
JOIN (SELECT @var_record := 0, @libId := 0) tmp
ORDER BY libraryId;
दूसरा यदि कथन दो असाइनमेंट को एक साथ समूहित करने और @var_record वापस करने के लिए उपयोग किया जाता है।
if(@var_record := 1 and @libId := libraryId, @var_record, @var_record)