[英]MySQL Conditional Select Replace Query
我發現自己需要替換MySQL Select查詢返回的某些結果。 我有下表和數據(出於示例目的而簡化)
uid | duration | range | unique | stamp
-----------------------------------------------------------------
23 | d | 43 | 1 | 1
24 | d | 65 | 0 | 2
25 | d | 76 | 0 | 3
26 | d | 33 | 0 | 4
27 | d | 44 | 1 | 5
28 | d | 43 | 1 | 6
29 | d | 67 | 0 | 7
30 | d | 88 | 0 | 8
31 | d | 63 | 0 | 9
我想在stamp
欄上進行替換。 我想知道是否有可能在列上運行某種用戶定義的函數並動態替換它,而不是簡單的文本替換。
例如,如果在戳記列中返回的數據為1,我希望將其替換為今天的時間戳,如果它是2,則為昨天的時間戳,為3,則是昨天的前一天,依此類推。
所以我的問題是,是否可以將REPLACE
指向處理該值然后返回要替換為該值的函數。 否則,是否有另一種方法可以完成此任務。
我顯然可以用PHP對返回的數據進行后期處理並進行更改,但是返回數百萬條記錄將大大增加加載時間。
編輯,使事情更清晰:我想替換SELECT查詢返回的數據中的標記列,我不在任何地方存儲數據,也不替換表中的數據。 該表將保持不變。
謝謝
您可以使用mysql的case語句
CASE case_value WHEN when_value THEN statement_list [When when_value THEN statement_list] ... [ELSE statement_list]結束案例
如果您只是嘗試檢索結果,請使用以下命令:
SELECT CURDATE() - INTERVAL stamp -1 DAY FROM myTable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.