Mysql 如何在SQL中添加if语句?
我有一个带有两个参数的MySQL,$catname和$limit=1。 它工作得很好Mysql 如何在SQL中添加if语句?,mysql,Mysql,我有一个带有两个参数的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'
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可以是
兰德订单()
或
按产品订货
在表omc_产品中
谁能告诉我怎么写这个查询
提前感谢。摘自MySQL 5.0参考文章的评论: 您可以使用
SELECT
语句的ORDER BY
子句中的CASE
表达式ORDER BY
动态列名参数:
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
摘自MySQL 5.0参考文章的评论: 您可以使用
SELECT
语句的ORDER BY
子句中的CASE
表达式ORDER BY
动态列名参数:
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
选择一个高于另一个的标准是什么?O、 还有:这也与PHP有关吗?那么你应该给它贴上相应的标签。选择一个高于另一个的标准是什么?O、 还有:这也与PHP有关吗?你应该给它贴上相应的标签。