於 mysql 裡使用 custom sort

通常在 mysql 下作排序的時候,會用「 ORDER BY 欄位」來排序內容,但這樣的方法的排序的動作只能依其大小來排。假設目前有下面的 table 內容想要顯示,可是球隊內容都會依照其防守位置作排序依據,這時就不能用單純的大小來比較了。

SELECT * FROM batters ORDER BY 守位;
結果如下:
守位    名字
1B  潘忠韋
2B  蔣智聰
3B  石志偉
C   陳峰民
CF  黃龍義
DH  陳金鋒
LF  曾豪駒
RF  霸漢
SS  林智勝

可以透過 FIELD 來幫忙,他可以依照傳入的值找出順序,例如: field(欄位,'spring','summer','fall','winter'),如果傳入值是 winter 的話,他會回傳數字,可以利用這個特性作為排序依據。依上面的例子來說:

SELECT * FROM batters ORDER BY FIELD(守位,'C','1B','2B','3B','SS','LF','CF','RF','DH');
此時結果就會變成:
守位    名字
C   陳峰民
1B  潘忠韋
2B  蔣智聰
3B  石志偉
SS  林智勝
LF  曾豪駒
CF  黃龍義
RF  霸漢
DH  陳金鋒

一定有人說,為什麼剛開始就不設計用數字作為欄位內容,在有些情況之下,如果想在不更動 database 內容的話,即可使用這個方法排序。

tr hover 在 IE 上的 hack

昨天想要在作在 table 上移動滑鼠時,滑鼠指到的該行會改變顏色作為顯示,假設目前有下列 html 結構的話:

<table class="changecolor">
<tr><td>test</td><td>test</td><td>test</td></tr>
</table>

在 firefox 上可以直接用下列方式達成:

tr.changecolor:hover {
  background-color:#CCFF99;
}

但在 IE 下不能這樣搞,對 IE 而言 hover 只能使用在 a 這個 tag 使用,所以要配上 javascript 作 hack 的動作。首先載入 jquery-min.js 後,再使用下列程式即可達成同樣的效果。


$(document).ready(function() {
  $(".changecolor tr").hover(function() {
    $(this).css("background-color","#DDDDDD");
  },function(){
    $(this).css('background-color','#FFFFFF');
  });
});

參考文件:

歷史上的今天-2008.10.12

沒想到不知不覺,已經到公司工作已經一個月了,這一個月內,學到的東西比我想像中的還多。我一直以為進去公司後,會使用我最拿手的 php 和一些 html 與網頁後端的工作。沒想到是寫後端沒有錯,但是寫的是 C++ 的部份。

公司福利真的不錯,網頁上寫的東西,都是真的有的,並不是把人騙進去用的。其他的還有 5~10 元的 zero 和其他的飲料,和一些團購訊息之類的。

回想第一天上班,還跟 show girl 一起合照,沒想到一下子就過了一個月了。忙忙碌碌的一個月,除了寫程式之外,也有一些受訓和開會的日子。這些日子在如果很忙的情況之下,整個人會很煩,因為一直拖到專案進度。

薪水都 15 號才發啊,可是我還沒收到薪水,因為我上次進去還沒發薪水呢,這還是我第一次遇到15號發薪水的公司。

公司裡面都程式要求很高效率,不像是以前只要能寫出來就好了。這跟以前作業之類的要求真的不一樣,很多的東西真的很有趣,但公司裡面用的都公司裡的特別修改的制定版的,所以如果要把同樣的經驗拿到外面來使用可能要修改很多東西。

還好多東西好學,真是有趣的公司啊。