Параметр Хранимая процедура Null

Мой вопрос заключается в следующем: я хотел сделать процедуру, которая могла бы принимать параметры yes и no, например CALL reg ('client', 0, 10, null, null).

и предполагалось, что если это будет как нулевой поиск, он пометит все данные, но на самом деле он ничего не показывает, он служит, когда я ставлю CALL reg ('client', 0, 10, 'name', 'carlos'), если значение

introducir la descripción de la imagen aquí

Но мне бы хотелось, чтобы поиск по нулевой точке показывал мне все, и я не знаю, как это сделать: c

CREATE PROCEDURE `reg`(
    IN `act` VARCHAR(50),
    IN `start` INT,
    IN `end` INT,
    IN `search` VARCHAR(50),
    IN `searchValue` VARCHAR(100)
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
    IF act = 'cliente' THEN
        SELECT cliente.id_cliente, cliente.name_cliente, cliente.id_estatus FROM cliente 
            WHERE CASE search
                    WHEN 'id' THEN cliente.id_cliente = IFNULL(searchValue, null)
                    WHEN 'nombre' THEN cliente.name_cliente LIKE CONCAT('%', searchValue, '%')
                    WHEN 'estatus' THEN cliente.id_estatus = IFNULL(searchValue, null)
                END
            ORDER BY cliente.id_cliente LIMIT start, end;
    END IF;
END;

0
задан 28.11.2019, 05:01
2 ответа

despuГ©s много reflexiГіn я верю в то, что lleguГ© в результате

BEGIN
    CASE tarjet
        WHEN 'cliente' THEN 
            IF search IS NOT NULL THEN
                SELECT * FROM cliente 
                    WHERE CASE search
                        WHEN 'id' THEN cliente.id_cliente = IFNULL(param, cliente.id_cliente)
                        WHEN 'nombre' THEN cliente.name_cliente LIKE IFNULL(CONCAT('%', param, '%'), '%%')
                        WHEN 'estatus' THEN cliente.id_estatus = IFNULL(param, cliente.id_estatus)
                    END
                    ORDER BY cliente.id_cliente LIMIT inicio, final;
            ELSE
                SELECT * FROM cliente ORDER BY cliente.id_cliente LIMIT inicio, final;
            END IF;
    END CASE;
END
0
ответ дан 01.12.2019, 10:41

Я верю в то, что deb¦-схвати, манипулировать этой стоимостью null по-другому, перед тем, как называть твою процедуру, потому что если parÃ: метр búsqueda - null нет búsqueda действительно. Но давайте представлять, что ты не можешь предотвращать стоимость null, в этом случае ты хочешь занести в список всю таблицу, так как я представляю, что ты можешь использовать WHEN, ВСТУПИТЕ В БРАК null и заносить в список все реестры, не импортируя стоимости último parÃ: метр формы клиент id_cliente = *

-3
ответ дан 01.12.2019, 10:41
  • 1
    Тема состоит в том, что уже у меня ничего нет, который в том, чтобы помещать в эту opció n, ¿ я могу оставлять это в мишени, если я помещаю какую-то? – Padron 28.11.2019, 10:09

Теги

Похожие вопросы