【发布时间】:2016-06-27 17:34:27
【问题描述】:
我想编写一个 MySQL 存储过程并给出 4 个变量 _keyword 、 _catid、_low 和 high 然后如果 _catid 不是空的过滤结果,其中 category_id 列等于 _catid 并且如果它(_catid)为空,则不要执行以下操作:
CREATE DEFINER = `root`@`localhost` PROCEDURE `sp_company_search` (
IN `_catid` INT,
IN `_keyword` VARCHAR (200) CHARSET utf8,
IN `_low` INT,
IN `_high` INT
) NO SQL SELECT
i.images_id,
c. NAME,
c.address,
c.id,
cat.title,
c.extra
FROM
company c
LEFT JOIN category cat ON c.category_id = cat.id
LEFT JOIN company_images i ON c.id = i.company_id
WHERE
(
c. NAME LIKE _keyword
OR c.extra LIKE _keyword
)
-- what i need TO DO:
-- IF (_catid != '') THEN { put "and c.category_id=_catid" IN QUERY }
ORDER BY
c.id DESC
LIMIT _low, _high
【问题讨论】:
标签: php mysql sql select stored-procedures