2012-05-09 55 views
2

我想知道是否有關於SQL輸出格式的最佳做法。 在PHP端或SQL語句本身上執行此操作會更好嗎? 我的SGBD是MySQL。格式化查詢輸出:使用sql或php函數?

+0

你叫什麼格式?訂購它或刪除某些列?請更具描述性,並告訴我們你想做什麼。 – Manuel

回答

1

除非您的格式爲影響訂購(請參閱下文),否則您可能更擅長PHP中的所有格式設置。

  • 儘管所有的應用程序層都傳遞了複雜/格式化的數據,但給您帶來了障礙。您應該傳遞簡單/原始值,並在將它們顯示給用戶之前對其進行格式化。這樣,您可以將這些值用於其他目的,而不僅僅用於顯示。

你要在SQL中格式化數據的主要原因是當它影響項目選擇或訂單,例如:

SELECT complex_expression(x) as fx FROM t ORDER BY fx LIMIT 20 
  • 在SQL做數學是有用的,當它以某種方式限制或命令返回數據集中的數據。如果你認爲你可以在PHP中做同樣的事情,你可能可以,但在SQL中通常會更容易。
0

取決於您需要什麼樣的格式。 在MySQL中進行數學運算。比使用類似的PHP函數更快。 如果你需要基本的日期格式,你可以在MySQL中完成,如果你需要高級格式化,你最好用PHP來完成。

+0

你有鏈接到文章或性能差異的東西? (不是我不相信你,只是出於好奇) –

+0

那麼,如果你有很多複雜的結果數據和複雜的查詢,你最好使用PHP。 –

0

我使用MySQL的小邏輯,例如,你需要計算,添加和這幾樣東西..

如果您需要解決複雜的計算,我會用PHP不超載SQL服務器

1

「格式化」是什麼意思?

如果您的問題是關於顯示數據的方式(數據格式,貨幣格式等),請使用PHP進行格式設置。格式化是表示層的責任。

如果您需要一些額外的計算,或者您需要彙總結果(如摘要),最好的方法通常是使用數據庫功能。您不需要將大量數據傳輸到應用程序服務器,您可以節省內存和處理器。

+0

肯定是的,計算是數據庫的工作,格式化是表示層的工作。 –

+0

我主要考慮關於日期/貨幣表示的基本格式。謝謝 ! – nonesk

0

如果通過格式化你的意思是格式化數字,貨幣,日期時間等,你應該在你的PHP代碼中格式化它。您應該更容易修改PHP代碼中的數據格式化函數,而不是查找和更改查詢。

然後在某些情況下,格式需要根據每個用戶而變化。