MySQL 的 Field 指令救了我一命

說來好笑啦,最近幫公司做的2014大選計票系統,開票中臨時要改一些排序順序,排序的方式比較不規則性,我就差點快崩潰了,我正在猶疑到底要重寫 SQL 還是 PHP ...

我本身英文也沒那麼好啦,就去搜尋一下 MYSQL Custom Sort 的字串,想不到還真的搜到了關鍵性的指令,就是 Field,可以看以下文件

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field

這道指令我重來沒用過,但不難用,假設你原本有個欄位的值可能會有 'A','B','C','D' , 但是你可能想要排序成 'B',A','D','C',這時候就可以下 ORDER BY field(field_name , 'B','A,'D','C') ,這樣就會按照你自己設定的方式來排序了,不過這效能當然不好啦,救急的。

如果真的還有下次,可能該欄位用關連的方式到另一個表格比較好,並且可以設定 relation key,當排序方式想要變動,改另一個表格的值,而原本表的值也會跟著改,這要比較好啦。

1 則評論在 MySQL 的 Field 指令救了我一命.

發佈留言