我被赋予了将2个mysql字段合并为一个然后进行编译以便可以搜索新字段的任务。我必须在我的数据库中合并的两个字段,其中注册了上一年和当前年份。这些字段所在的格式为dd / mm / yyyy。我将这些字段组合成一个名为Years Registered的字段,其格式仍然是dd / mm / yyyy,但是用逗号(,)分隔的年份。我想知道如何在这个专栏上执行几种不同类型的查询。我必须执行的mysql查询是:Show All(),在日期之间显示全部:mm / yyyy和mm / yyyy,之前:mm / yyyy,之后:mm / yyyy
非常感谢任何帮助。
感谢您的时间。
答案 0 :(得分:2)
不要这样做! 我不知道它是如何完全可能的(我假设存储过程中的一些SQL Stringoperations和Datefunctions),但它肯定会破坏数据库的性能。 使用这种关系。
这是:
如果您必须支持现有平台的问题,请使用支持两种备选方案的代码库。与使用以逗号分隔的列表
相比,这仍然更容易维护答案 1 :(得分:2)
我不喜欢它,但如果您需要,可以使用下一个解决方案:
使用start_date = STR_TO_DATE提取日期(SUBSTRING(your_new_field,1,10)) 和end_date = STR_TO_DATE(SUBSTRING(your_new_field,12,10))
答案 2 :(得分:0)
您的数据库将破坏“首次规范化表格(1NF)”并且高度无效。
为了搜索选定的日期,您要么必须查询表中的所有行,要么使用LIKE
,这也非常迟缓。
无论是谁要求您这样做,都应该阅读有关数据库规范化的this article。
使用两个DATE
或DATETIME
字段并在MySQL之外格式化它们有什么问题?