0
使用MySQL 30年5月5日,爲一個表,purchase_order_product(MyISAM數據),具有以下記錄:MySQL查詢工作在工作臺,而不是在代碼
+----------+------------------+
| order_id | order_product_id |
+----------+------------------+
| 98 | 1 |
| 99 | 14 |
| 99 | 15 |
| 100 | 16 |
| 100 | 17 |
| 100 | 18 |
| 101 | 19 |
| 102 | 20 |
+----------+------------------+
當我運行從MySQL工作臺下面的查詢47年2月5日CE:
SELECT pop.order_id, pop.order_product_id,
@RUNNING:=IF(@PREVIOUS = pop.order_id, @RUNNING, 0) + 1 AS rownum,
@PREVIOUS:=pop.order_id as previd
FROM purchase_order_product pop
ORDER BY pop.order_id , pop.order_product_id ASC;
我得到以下輸出:
+----------+------------------+--------+--------+
| order_id | order_product_id | rownum | previd |
+----------+------------------+--------+--------+
| 98 | 1 | 1 | 98 |
| 99 | 14 | 1 | 99 |
| 99 | 15 | 2 | 99 |
| 100 | 16 | 1 | 100 |
| 100 | 17 | 2 | 100 |
| 100 | 18 | 3 | 100 |
| 101 | 19 | 1 | 101 |
| 102 | 20 | 1 | 102 |
+----------+------------------+--------+--------+
我的預期目標是VALU rownum,這是很好的,如預期到目前爲止......
然而,當我從我的PHP代碼或從mysql命令行運行查詢對同一個數據庫使用相同的數據庫用戶,我得到以下輸出:
+----------+------------------+--------+--------+
| order_id | order_product_id | rownum | previd |
+----------+------------------+--------+--------+
| 98 | 1 | 1 | 98 |
| 99 | 14 | 1 | 99 |
| 99 | 15 | 1 | 99 |
| 100 | 16 | 1 | 100 |
| 100 | 17 | 1 | 100 |
| 100 | 18 | 1 | 100 |
| 101 | 19 | 1 | 101 |
| 102 | 20 | 1 | 102 |
+----------+------------------+--------+--------+
正如你所看到的,rownum總是1!
我有廣泛的搜索解決這個令人困惑的問題,無濟於事。有誰知道可能會發生什麼?難道我做錯了什麼?
非常感謝!像魅力一樣工作! – jerahian
@jerahian很高興我可以幫助:)歡呼的隊友 – Stephan