繁体   English   中英

搜索逗号分隔的mysql字段的最佳方法

[英]Best way to search a comma separated mysql field

我已经获得了将2个mysql字段合并为一个,然后进行合并以便可以搜索新字段的任务。 我必须在我的数据库中合并这两个字段,前一个注册年份和当前注册的年份。 这两个字段的格式均为dd / mm / yyyy。 我将这些字段组合成一个字段,称为“注册年数”,尽管其格式仍为dd / mm / yyyy,但注册的年数之间用逗号(,)分隔。 我想知道如何在此列上执行几种不同类型的查询。 我必须执行的mysql查询是:Show All(),在日期之间显示所有:mm / yyyy和mm / yyyy,之前:mm / yyyy,之后:mm / yyyy

任何帮助将不胜感激。

谢谢你的时间。

不要这样做! 我不知道这是怎么可能的(我假设存储过程中的某些SQL Stringoperations和Datefunctions),但这肯定会破坏数据库的性能。 为此使用关系。

这是:

  • 更快
  • 更具扩展性(例如,三个日期)
  • 更容易编码
  • 更容易理解
  • 更易于移植到其他数据库

如果必须支持现有平台,请使用同时支持这两种选择的代码库。 与使用逗号分隔的列表相比,此方法仍然更容易维护且更好

我不喜欢它,但是如果您需要,可以使用下一个解决方案:

使用start_date = STR_TO_DATE(SUBSTRING(your_new_field,1,10))和end_date = STR_TO_DATE(SUBSTRING(your_new_field,12,10))提取日期

你的数据库将打破“第一标准化表格(1NF)”和将是非常 ineffecient。

为了搜索选定的日期,您要么必须查询表中的所有行,要么使用同样很慢的LIKE

要求您执行此操作的人应阅读有关数据库规范化的文章

使用两个DATEDATETIME字段并在MySQL外部格式化它们又怎么了?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM