簡體   English   中英

如何按“學說”中的條件排序結果?

[英]How can I order results by conditions in Doctrine?

如何使用“ Doctrine查詢生成器”對結果進行排序,以使匹配第一個條件的結果排在第一位,然后是第二個條件的結果(所有結果都應與第三個條件匹配)?

這是查詢的示例:

$QB->select('k', 'k.word')
        ->from($repository, 'k')
        ->where('k.word LIKE :strict')
        ->orWhere('k.word LIKE '.':loose')       
        ->andWhere('k.status=1')
        ->setMaxResults(5)
        ->setParameter('strict', $query.'%')
        ->setParameter('loose', '%'.$query.'%');

我嘗試使用orderBy()但沒有成功-不知道語法是什么。

UPD。 數據和結果列表示例:假設我有一個數據列表:

  • 字: 汽車 ,狀態: 1
  • 詞: 洗車 ,狀態: 1
  • 詞: 電動車 ,狀態: 1
  • 字: 制圖 ,狀態: 1
  • 字: 敞蓬車 ,狀態: 0

搜索查詢是“ ca”

我希望查詢進行排序並首先顯示這些結果:

  • 字: 汽車 ,狀態: 1
  • 詞: 洗車 ,狀態: 1
  • 字: 制圖 ,狀態: 1

然后這個結果:

  • 詞: 電動車 ,狀態: 1

並過濾掉這個,因為狀態為0

  • 字: 敞蓬車 ,狀態: 0

你嘗試過這個嗎?

$QB->select('k', 'k.word')
        ->from($repository, 'k')
        ->where('k.word LIKE :strict')
        ->orWhere('k.word LIKE '.':loose')       
        ->andWhere('k.status=1')
        ->setMaxResults(5)
        ->setParameter('strict', $query.'%')
        ->setParameter('loose', '%'.$query.'%')
        ->orderBy('k.word', 'ASC');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM