mysql循环数组查询主键
时间: 2023-07-28 14:29:02 浏览: 113
php+mysql查询实现无限下级分类树输出示例
在 MySQL 中,循环数组查询主键可以使用存储过程或函数来实现。以下是一个示例存储过程,用于查询一个表中指定数组中所有记录的主键 ID:
```sql
DELIMITER $$
CREATE PROCEDURE find_ids(IN myarray VARCHAR(255))
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE n INT;
SELECT COUNT(*) INTO n FROM mytable;
WHILE i < n DO
SELECT id INTO @id FROM mytable ORDER BY id LIMIT i, 1;
IF FIND_IN_SET(@id, myarray) THEN
SELECT @id AS id;
END IF;
SET i = i + 1;
END WHILE;
END$$
DELIMITER ;
```
这个存储过程会使用 WHILE 循环遍历 mytable 表中的所有记录,并将每条记录的主键 ID 存储到 @id 变量中。然后,存储过程会使用 FIND_IN_SET 函数检查 @id 是否在 myarray 数组中,如果存在,则返回该主键 ID。
你可以将你自己的数组作为参数传递给这个存储过程,例如:
```sql
CALL find_ids('1,3,5');
```
这个存储过程会返回 mytable 表中主键 ID 为 1、3 或 5 的记录。请注意,myarray 参数应该是一个用逗号分隔的字符串,而不是一个数组或列表。
使用存储过程或函数可以在 MySQL 中实现循环数组查询主键,但是需要注意循环查询可能会影响数据库性能。如果可能,应该尽量使用 SQL 查询语句来完成数据查询。
阅读全文