mysqlでデータを繰り返し検索する方法は何ですか?
MySQL内では、データを繰り返しクエリするために、WHILEやREPEATなどのループ文を使用することができます。以下は簡単な例です:
usersというテーブルがあると仮定し、その中にはidとnameという2つのフィールドが含まれています。今、すべてのユーザーの名前をループでクエリする必要があります。
DELIMITER $$
CREATE PROCEDURE get_users()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE user_id INT;
DECLARE user_name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT id, name FROM users;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
get_users_loop: LOOP
FETCH cur INTO user_id, user_name;
IF done = 1 THEN
LEAVE get_users_loop;
END IF;
-- 这里可以对每一条数据进行处理,例如输出到控制台
SELECT user_name;
END LOOP;
CLOSE cur;
END$$
DELIMITER ;
次に、get_users()というストアドプロシージャを呼び出して、繰り返しクエリを実行します。
CALL get_users();
usersテーブル内のすべてのユーザーデータを繰り返し検索できます。ただし、繰り返し検索はデータベースの負担を増やす可能性があるため、大量のデータでの使用は避けるようにしてください。