MariaDB 循环不显示查询结果
MariaDB loop not displaying results of query
我有一个简单的查询:
SELECT COUNT(ud.UserID), COUNT(DISTINCT ud.ProductID)
FROM users_data AS ud
JOIN products AS t ON t.ID = ud.ProductID
WHERE ud.UserID = '3'
这导致:
COUNT(ud.UserID) COUNT(DISTINCT ud.ProductID)
519 425
当我尝试在 while 或 for 循环中包含时:
DELIMITER //
SET @i = 0;
FOR i IN 1..10
DO SELECT COUNT(ud.UserID), COUNT(DISTINCT ud.ProductID)
FROM users_data AS ud
JOIN products AS t ON t.ID = ud.ProductID
WHERE ud.UserID = (i)
END FOR
//
除以下内容外,我没有得到任何输出:
Query executed OK, 0 rows affected.
还有什么我想念的吗?谢谢。
为什么要使用 loop
?这作为一个简单的查询要好得多:
SELECT ud.UserId, COUNT(*), COUNT(DISTINCT ud.ProductID)
FROM users_data ud
GROUP BY ud.UserID;
如果需要特定用户,可以使用 WHERE
子句:
SELECT ud.UserId, COUNT(*), COUNT(DISTINCT ud.ProductID)
FROM users_data ud
WHERE ud.UserId IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
GROUP BY ud.UserID;
注意:我认为 JOIN
不是必需的。
问题的答案在 DO
的定义中。它被定义为执行查询,然后丢弃结果。
我有一个简单的查询:
SELECT COUNT(ud.UserID), COUNT(DISTINCT ud.ProductID)
FROM users_data AS ud
JOIN products AS t ON t.ID = ud.ProductID
WHERE ud.UserID = '3'
这导致:
COUNT(ud.UserID) COUNT(DISTINCT ud.ProductID)
519 425
当我尝试在 while 或 for 循环中包含时:
DELIMITER //
SET @i = 0;
FOR i IN 1..10
DO SELECT COUNT(ud.UserID), COUNT(DISTINCT ud.ProductID)
FROM users_data AS ud
JOIN products AS t ON t.ID = ud.ProductID
WHERE ud.UserID = (i)
END FOR
//
除以下内容外,我没有得到任何输出:
Query executed OK, 0 rows affected.
还有什么我想念的吗?谢谢。
为什么要使用 loop
?这作为一个简单的查询要好得多:
SELECT ud.UserId, COUNT(*), COUNT(DISTINCT ud.ProductID)
FROM users_data ud
GROUP BY ud.UserID;
如果需要特定用户,可以使用 WHERE
子句:
SELECT ud.UserId, COUNT(*), COUNT(DISTINCT ud.ProductID)
FROM users_data ud
WHERE ud.UserId IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
GROUP BY ud.UserID;
注意:我认为 JOIN
不是必需的。
问题的答案在 DO
的定义中。它被定义为执行查询,然后丢弃结果。