البرمجة

كيفية تكرار القيم بشكل دوري في MySQL

لتحقيق هذا الهدف في MySQL، يمكنك استخدام متغير عدد الظهور لتتبع عدد مرات ظهور القيم في العمود. يمكنك استخدام تعليمة UPDATE مع شرط ORDER BY لتحديث القيم في العمود وتغييرها إلى القيم التالية عندما يصل عدد الظهور إلى الحد الأقصى. يمكنك استخدام التالي كمثال لهذا المفهوم:

sql
CREATE TABLE example ( id INT AUTO_INCREMENT PRIMARY KEY, value INT, count INT DEFAULT 0 ); DELIMITER $$ CREATE TRIGGER update_value_trigger BEFORE INSERT ON example FOR EACH ROW BEGIN DECLARE max_count INT; SET max_count = 3; -- العدد الأقصى للظهور IF NEW.count >= max_count THEN SET NEW.count = 0; SET NEW.value = (SELECT MAX(value) + 1 FROM example); ELSE SET NEW.count = NEW.count + 1; END IF; END$$ DELIMITER ; INSERT INTO example (value) VALUES (1), (1), (1), (1), (1), (2), (2), (2), (2), (2); SELECT * FROM example;

هذا المثال يستخدم جدولًا بعنوان example مع حقلين: value لتخزين القيم و count لتتبع عدد مرات ظهور القيم. يستخدم المثال تريجر لتحديث القيم في الجدول عند إدخال قيمة جديدة، حيث يتم زيادة count بمقدار واحد، وعندما يصل count إلى الحد الأقصى، يتم تحديث value ليكون أكبر قيمة موجودة + 1 ويتم إعادة تعيين count إلى الصفر.

المزيد من المعلومات

لتحديث القيم في الجدول بحيث يتم تكرار القيم بشكل دوري بحيث يتم تحديث العمود value بقيم مثل 1 1 1 2 2 2 3 3 3 4 4 4 ...، يمكنك استخدام الطريقة التالية:

sql
CREATE TABLE example ( id INT AUTO_INCREMENT PRIMARY KEY, value INT, count INT DEFAULT 0 ); DELIMITER $$ CREATE TRIGGER update_value_trigger BEFORE INSERT ON example FOR EACH ROW BEGIN DECLARE max_count INT; SET max_count = 3; -- العدد الأقصى للظهور IF NEW.count >= max_count THEN SET NEW.count = 0; SET NEW.value = (SELECT MAX(value) + 1 FROM example); ELSE SET NEW.count = NEW.count + 1; END IF; END$$ DELIMITER ; INSERT INTO example (value) VALUES (1), (1), (1), (1), (1), (2), (2), (2), (2), (2), (3), (3), (3), (3), (3); SELECT * FROM example;

في هذا المثال، يتم تحديث value ليكون أكبر قيمة موجودة + 1 عندما يتم إدخال قيمة جديدة تتجاوز الحد الأقصى المحدد (هنا 3). عندما يصل count إلى الحد الأقصى، يتم تعيينه إلى الصفر مرة أخرى.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!