簡體   English   中英

查詢以使用 PHP 和 MySQL 按特定順序獲取數據庫值

[英]Query to fetch Database value in a specific order using PHP and MySQL

我需要一個幫助。我需要通過連接兩個表來從數據庫中獲取值,這將按照給定的順序進行。 我正在解釋下表。

數據庫貓:

cat_id    cat_name   order

1          food        1

2          Drink       2

3          Ice         3

db_subcat:

subcat_id    subcat_name   cat_id   order

1            pizza          1         1

2            chiness        1         3

3          Stampede Party  1          2

4          Wine            2          1

5         HAPPY HOUR       3          1

6           BS             1          4

我的預期輸出如下。

pizza, Stampede Party, chiness,BS , Wine , HAPPY HOUR

從上面的兩個表我需要所有的subcat_name ,這只是按照db_cat order列和db_subcat order列。這里food 下的subcat_name 應該排在第一位,它也應該跟在db_subcat訂單列之后等等。請幫我寫這個詢問。

您使用ORDER BY對列進行排序,您可以按order by使用多個列,請閱讀此處了解更多信息

SELECT subcat_name
FROM db_subcat
JOIN db_cat ON db_cat.cat_id = db_subcat.cat_id
ORDER BY db_cat.order DESC, db_subcat.order DESC

這是非常基本的,您應該閱讀更多關於 mysql 的內容並找到可以學習的示例。

使用ORDER BY並嘗試以下查詢。 它將首先使用 db_cat orderby 字段設置 order by,然后使用 db_subcat orderby 字段進行 order by。

ASC表示升序, DESC

SELECT ds.subcat_name FROM `db_subcat` as ds 
JOIN db_cat as d ON d.cat_id=ds.cat_id 
ORDER BY d.orderby,ds.orderby ASC;

輸出在此處輸入圖片說明

以下是解決方案:

SELECT * FROM db_subcat AS sc LEFT JOIN db_cat AS c ON sc. cat_id = c. cat_id ORDER BY c.order ASC, sc.order ASC

暫無
暫無

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

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