[英]How to add if statement in SQL?
我有以下带有两个参数的MySQL:$ catname和$ limit = 1。 而且工作正常。
SELECT P.*, C.Name AS CatName
FROM omc_product AS P
LEFT JOIN omc_category AS C
ON C.id = P.category_id
WHERE C.Name = '$catname'
AND p.status = 'active'
ORDER BY RAND()
LIMIT 0, $limit
现在,我想添加另一个参数$ order。 $ order可以是
由RAND()订购
要么
按product_order订购
在omc_product表中。
有人可以告诉我如何编写此查询吗?
提前致谢。
摘自对此 MySQL 5.0参考文章的评论:
你可以ORDER BY
使用动态列名参数CASE
表达式ORDER BY
的子句SELECT
语句:
CREATE PROCEDURE `orderby`(IN _orderby VARCHAR(50))
BEGIN
SELECT id, first_name, last_name, birthday
FROM table
ORDER BY
-- numeric columns
CASE _orderby WHEN 'id' THEN id END ASC,
CASE _orderby WHEN 'desc_ id' THEN id END DESC,
-- string columns
CASE _orderby WHEN 'first_name' THEN first_name WHEN 'last_name' THEN last_name END ASC,
CASE _orderby WHEN 'desc_first_name' THEN first_name WHEN 'desc_last_name' THEN last_name END DESC,
-- datetime columns
CASE _orderby WHEN 'birthday' THEN birthday END ASC,
CASE _orderby WHEN 'desc_ birthday' THEN birthday END DESC;
END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.