[英]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.