{"id":11545,"date":"2024-03-14T14:18:16","date_gmt":"2024-03-14T14:18:16","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/"},"modified":"2025-08-04T13:22:39","modified_gmt":"2025-08-04T13:22:39","slug":"how-to-loop-through-data-in-mysql","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/","title":{"rendered":"MySQL Loop: Iterate Through Rows with Cursors"},"content":{"rendered":"<p>In MySQL, you can use loop statements such as WHILE or REPEAT to loop through data queries. Here is a simple example:<\/p>\n<p>Assume there is a table called &#8220;users&#8221; with two columns, id and name, and now it is required to loop through and query the names of all users.<\/p>\n<pre class=\"post-pre\"><code>DELIMITER $$\r\n\r\n<span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">PROCEDURE<\/span> get_users()\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    <span class=\"hljs-keyword\">DECLARE<\/span> done <span class=\"hljs-type\">INT<\/span> <span class=\"hljs-keyword\">DEFAULT<\/span> <span class=\"hljs-number\">0<\/span>;\r\n    <span class=\"hljs-keyword\">DECLARE<\/span> user_id <span class=\"hljs-type\">INT<\/span>;\r\n    <span class=\"hljs-keyword\">DECLARE<\/span> user_name <span class=\"hljs-type\">VARCHAR<\/span>(<span class=\"hljs-number\">255<\/span>);\r\n    \r\n    <span class=\"hljs-keyword\">DECLARE<\/span> cur <span class=\"hljs-keyword\">CURSOR<\/span> <span class=\"hljs-keyword\">FOR<\/span> <span class=\"hljs-keyword\">SELECT<\/span> id, name <span class=\"hljs-keyword\">FROM<\/span> users;\r\n    <span class=\"hljs-keyword\">DECLARE<\/span> CONTINUE HANDLER <span class=\"hljs-keyword\">FOR<\/span> <span class=\"hljs-keyword\">NOT<\/span> FOUND <span class=\"hljs-keyword\">SET<\/span> done <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>;\r\n    \r\n    <span class=\"hljs-keyword\">OPEN<\/span> cur;\r\n    get_users_loop: LOOP\r\n        <span class=\"hljs-keyword\">FETCH<\/span> cur <span class=\"hljs-keyword\">INTO<\/span> user_id, user_name;\r\n        IF done <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span> <span class=\"hljs-keyword\">THEN<\/span>\r\n            LEAVE get_users_loop;\r\n        <span class=\"hljs-keyword\">END<\/span> IF;\r\n\r\n        <span class=\"hljs-comment\">-- \u8fd9\u91cc\u53ef\u4ee5\u5bf9\u6bcf\u4e00\u6761\u6570\u636e\u8fdb\u884c\u5904\u7406\uff0c\u4f8b\u5982\u8f93\u51fa\u5230\u63a7\u5236\u53f0<\/span>\r\n        <span class=\"hljs-keyword\">SELECT<\/span> user_name;\r\n    <span class=\"hljs-keyword\">END<\/span> LOOP;\r\n    \r\n    <span class=\"hljs-keyword\">CLOSE<\/span> cur;\r\n<span class=\"hljs-keyword\">END<\/span>$$\r\n\r\nDELIMITER ;\r\n<\/code><\/pre>\n<p>Then call the stored procedure get_users() to execute the loop query.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">CALL<\/span> get_users();\r\n<\/code><\/pre>\n<p>This allows for looping through all user data in the users table. It is important to note that looping queries may increase the burden on the database, so it is best to avoid using them with large amounts of data.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In MySQL, you can use loop statements such as WHILE or REPEAT to loop through data queries. Here is a simple example: Assume there is a table called &#8220;users&#8221; with two columns, id and name, and now it is required to loop through and query the names of all users. DELIMITER $$ CREATE PROCEDURE get_users() [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[11268,14916,97,14915,607],"class_list":["post-11545","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-cursor","tag-data-iteration","tag-database-query","tag-mysql-loop","tag-stored-procedure"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MySQL Loop: Iterate Through Rows with Cursors - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to loop through MySQL data with stored procedures and cursors. Step-by-step WHILE\/REPEAT examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MySQL Loop: Iterate Through Rows with Cursors\" \/>\n<meta property=\"og:description\" content=\"Learn how to loop through MySQL data with stored procedures and cursors. Step-by-step WHILE\/REPEAT examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T14:18:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T13:22:39+00:00\" \/>\n<meta name=\"author\" content=\"Sophia Anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/\"},\"author\":{\"name\":\"Sophia Anderson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\"},\"headline\":\"MySQL Loop: Iterate Through Rows with Cursors\",\"datePublished\":\"2024-03-14T14:18:16+00:00\",\"dateModified\":\"2025-08-04T13:22:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/\"},\"wordCount\":109,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Cursor\",\"Data Iteration\",\"database query\",\"MySQL Loop\",\"Stored Procedure\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/\",\"name\":\"MySQL Loop: Iterate Through Rows with Cursors - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T14:18:16+00:00\",\"dateModified\":\"2025-08-04T13:22:39+00:00\",\"description\":\"Learn how to loop through MySQL data with stored procedures and cursors. Step-by-step WHILE\/REPEAT examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MySQL Loop: Iterate Through Rows with Cursors\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\",\"name\":\"Sophia Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"caption\":\"Sophia Anderson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MySQL Loop: Iterate Through Rows with Cursors - Blog - Silicon Cloud","description":"Learn how to loop through MySQL data with stored procedures and cursors. Step-by-step WHILE\/REPEAT examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/","og_locale":"en_US","og_type":"article","og_title":"MySQL Loop: Iterate Through Rows with Cursors","og_description":"Learn how to loop through MySQL data with stored procedures and cursors. Step-by-step WHILE\/REPEAT examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T14:18:16+00:00","article_modified_time":"2025-08-04T13:22:39+00:00","author":"Sophia Anderson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Sophia Anderson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/"},"author":{"name":"Sophia Anderson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30"},"headline":"MySQL Loop: Iterate Through Rows with Cursors","datePublished":"2024-03-14T14:18:16+00:00","dateModified":"2025-08-04T13:22:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/"},"wordCount":109,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Cursor","Data Iteration","database query","MySQL Loop","Stored Procedure"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/","name":"MySQL Loop: Iterate Through Rows with Cursors - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T14:18:16+00:00","dateModified":"2025-08-04T13:22:39+00:00","description":"Learn how to loop through MySQL data with stored procedures and cursors. Step-by-step WHILE\/REPEAT examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-data-in-mysql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MySQL Loop: Iterate Through Rows with Cursors"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30","name":"Sophia Anderson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","caption":"Sophia Anderson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=11545"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11545\/revisions"}],"predecessor-version":[{"id":155328,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11545\/revisions\/155328"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=11545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=11545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=11545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}