php
  • mysql
  • category
  • 2012-06-29 38 views 0 likes 
    0

    我有一個mysql數據庫,其中有大約數百個類別的相冊。當我使用顯示只顯示有限類別的一個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

    您必須將WHERE關鍵字放在您的條件之前。

    而且,代替所有這些OR s或|| s,使用IN

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

    謝謝你的解決方案贊恩它的工作。你和holger解決方案:) –

    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" 
    
    +0

    謝謝你,你的解決方案也得到了工作 –

    相關問題