仅显示具有mysql查询的有限类别

时间:2012-06-29 19:36:23

标签: php mysql categories

我有一个mysql数据库,其中有大约数百个相册类别。当我使用

显示相册时
"SELECT * FROM 'album' `status`='1' ORDER BY `cat_name` DESC LIMIT 10"

所以它会显示最后10个类别,但是如果我想在数百个类别之间只显示15个类别,那么查询应该是什么?我试过这个。

"SELECT * FROM 'album' `status`='1' and `cat_id`='2' || `cat_id`='7' || `cat_id`='8' || `cat_id`='14' || `cat_id`='20' ORDER BY `cat_name` DESC LIMIT 10"

这里显示我要显示的那个类别,但它显示了我也没有在这里显示的失活类别status ='1'(非活动状态= 0) 任何人都可以帮助我

2 个答案:

答案 0 :(得分:0)

你需要在'cat_id'或条件周围加上括号()。 'status'='1' AND仅适用于'cat_id'=2',但不适用于其他'cat_id',因为条件是从左到右读取的。

"SELECT * FROM 'album' WHERE `status`='1' and (`cat_id`='2' || `cat_id`='7' || `cat_id`='8' || `cat_id`='14' || `cat_id`='20') ORDER BY `cat_name` DESC LIMIT 10"

答案 1 :(得分:0)

您必须在条件之前加上WHERE关键字。

此外,请使用OR代替所有||IN

SELECT *
FROM album
WHERE status = 1 AND cat_id IN (2,7,8,14,20)
ORDER BY cat_name DESC
LIMIT 10