簡體   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