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テーブル内のすべてのユーザーデータを繰り返し検索できます。ただし、繰り返し検索はデータベースの負担を増やす可能性があるため、大量のデータでの使用は避けるようにしてください。

bannerAds