還未排序的 table , 會有約 1000 row , 下面只有寫幾條測試看看 , 未來 1000 row 是否可行
A .以下以時間及水果為排序重點 , 先找符合的時間 TIME 再找水果 AFC與 AFC1
排序順位為 12345678
B . 時間為 : [1].0613 [2].0725 [3]. 0734 [4].0824 [5].0925 [6].0945 [7].1034 [8].1045
水果順位為 1234567812345678
C .水果為 : [1].荔枝 [2].蘋果 [3].葡萄 [4].鳳梨 [5].西瓜 [6].龍眼 [7].榴槤 [8].香蕉
排序方法如下 , 先找符合 TIME 再找 AFC 與 AFC1
1 . 最早0613有兩個 , 但 AFC 蘋果是第一順位 , AFC1 [2]是蘋果第二順位 , 應該是取到 id 001 才對 , AFC蘋果 AFC1荔枝 沒有這個 row , 但 AFC 蘋果 AFC 蘋果有這個 row , 程式如下
"SELECT *,MIN(time)FROM `fruit` WHERE time LIKE '0%' AND afc LIKE '%蘋果%' AND afc1 LIKE '%荔枝%' AND afc1 '%蘋果%'";
但出現錯誤如下
Notice: Trying to get property 'num_rows' of non-object in D:\xampp\htdocs\fruit\data1.php on line 9
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in D:\xampp\htdocs\fruit\data1.php:31 Stack trace: #0 {main} thrown in D:\xampp\htdocs\fruit\data1.php on line 31
但我希望是取到當 TIME 是最低 , afc '%蘋果%' 與 afc1 '%荔枝%'但原始 row 沒有 , 所以要取 afc '%蘋果%' 與 afc1 '%蘋果%'這才有 , 也就是 id 1 , 一個蘋果一個蘋果時才會顯示 , 這要如何做呢 ?
程式改成這樣 , 就沒搜尋到資料
$sql_query = "SELECT *,MIN(time)FROM `fruit` WHERE time LIKE '0%' AND afc LIKE '%蘋果%' AND afc1 LIKE '%荔枝%' AND afc1 LIKE '%蘋果%'";
觀念錯了
應該下 Select * From fruit
Order by time,(Case When afc Like '%荔枝%' then 1
When afc Like '%蘋果%' then 2
When ...... End),
(Case When afc1 Like '%荔枝%' then 1
When afc1 Like '%蘋果%' then 2
When ...... End)
謝謝你這麼熱心回答 , 我改成這樣 , afc 只需要一個條件就可
$sql_query="Select * From fruit Order by time,(Case When afc Like '%荔枝%' then 1 End),(Case When afc1 Like '%荔枝%' then 1 When afc1 Like '%蘋果%' then 2 When afc1 Like '%葡萄%' End";
我的程度只看得懂簡單範例如下 , 應用到我的例子 , 就會有問題
SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY 2 DESC;
SELECT Store_Name, CASE Store_Name
WHEN 'Los Angeles' THEN Sales * 2
WHEN 'San Diego' THEN Sales * 1.5
ELSE Sales
END
"New Sales",
Txn_Date
FROM Store_Information;
謝謝 ! 改成這樣可以了
$sql_query="SELECT *,MIN(time) FROM `fruit` WHERE time LIKE '0%' AND(afc LIKE '%芭樂%')AND (afc1 LIKE '%蘋果%' OR afc1 LIKE '%葡萄%' OR afc1 LIKE '%龍眼%')";
但是當取到 afc1 值後 , 要再成為下一 row 的 afc , 這樣就可以一直排下去 , 到所有 row 完成 , 還要再研究看看