Мне нужно выполнить полное сканирование на уровне таблицы, поскольку должно быть получено более одной строки на основе идентификатора пользователя.
Так как я раньше получал sqlMessage с указанием «Подзапрос возвращает более 1 строки».
{ Error: ER_SUBQUERY_NO_1_ROW: Subquery returns more than 1 row
...
code: 'ER_SUBQUERY_NO_1_ROW',
errno: 1242,
sqlMessage: 'Subquery returns more than 1 row',
sqlState: '21000',
index: 0,
sql: 'CALL GetLocationTag(1)' }
Вот звонок на GetLocationTag()
код
DELIMITER $$
CREATE
DEFINER = `root`@`localhost`
PROCEDURE `someDB`.`GetLocationTag`(IN `UserId` BIGINT)
LANGUAGE SQL
DETERMINISTIC
READS SQL DATA
SQL SECURITY DEFINER
COMMENT 'Retrieves Multiple Stored Location Tags, Address, Location, etc. based on User_ID'
BEGIN
DECLARE flag INT(11);
DECLARE locRecord VARCHAR(255);
IF EXISTS (SELECT * FROM `location_map` WHERE `user_id` = User_Id ) THEN
BEGIN
SELECT * INTO locRecord FROM `location_map` WHERE `user_id` = User_Id;
SET flag = 1;
END;
ELSE
SET flag = 0;
SET locRecord = 0;
END IF;
SELECT locRecord, flag;
END$$
DELIMITER ;
Для запроса ниже,
SELECT * INTO locRecord FROM `location_map` WHERE `user_id` = User_Id;
Как мне получить все строки в виде массивов и сохранить их в переменной ИЛИ Как мне предположить, чтобы код был таким, что сообщение об ошибке должно быть разрешено?