mysql верстак выбрать и выбрать в выпуске - PullRequest
0 голосов
/ 01 ноября 2019

не знаю, почему это сбивает меня с толку .. странно, что вещи, которые я вижу, как это сделать, отображаются как ошибки в рабочей среде ... поэтому я хочу сначала выбрать в var и выбрать в следующем ... затем использоватьVAR для обновления ... но он никогда не работает .. поэтому я обнаружил, что вы должны были сделать вещь ... и теперь это показывает красный х на нем .. что с ним не так?

    use reunionfunfacts;
drop procedure if exists reunionfunfacts.getTrueFact;
DELIMITER //


CREATE PROCEDURE getTrueFact(in in_idperson int)

BEGIN
DECLARE _idtrue_fact    int;

select
    idtrue_fact into _idtrue_fact,
    fact_text
from 
    reunionfunfacts.true_fact
where 
    in_idperson = idperson and fact_in_use = 0 or fact_in_use is null
order by rand() limit 1;


update reunionfunfacts.true_fact set fact_in_use=1 where idtrue_fact=_idtrue_fact;
END 
//

DELIMITER ;

1 Ответ

0 голосов
/ 01 ноября 2019

У вас есть 2 столбца, поэтому вы должны добавить к переменным INTO, как это

Но я не знаю, достаточно ли TEXT для вашего текста факта

drop procedure if exists reunionfunfacts.getTrueFact;
DELIMITER //


CREATE PROCEDURE getTrueFact(in in_idperson int)

BEGIN
DECLARE _idtrue_fact    int;
DECLARE _fact_text    TEXT;

select
    idtrue_fact ,
    fact_text
    INTO _idtrue_fact, _fact_text
from 
    reunionfunfacts.true_fact
where 
    in_idperson = idperson and fact_in_use = 0 or fact_in_use is null
order by rand() limit 1;


update reunionfunfacts.true_fact set fact_in_use=1 where idtrue_fact=_fact_text;
END 
//

DELIMITER ;
...