我有一个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)
任何人都可以帮助我
答案 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