簡體   English   中英

SQL查詢,用逗號存儲日期的兩個日期之間的日期

[英]SQL query to select dates between two dates where dates are stored with commas

我正在使用Multidatespicker所以我的數據庫中有日期如下:

ID    POST  KEY                  VALUE
1     1     multipledates        20151020, 20151015, 20151101
2     2     multipledates        20151103
3     3     multipledates        20151022, 20151010, 20151202, 20160410
...

然后我有'date_start'和'date_end'。 我需要在這些日期之間選擇日期。

此SQL查詢僅適用於我的ID2示例(因為它沒有逗號)

SELECT ... BETWEEN $date_start AND $date_end

解決方案是使用類似'LIKE'之類的東西,但如果可能的話:

SELECT ... BETWEEN LIKE '%$date_start%' AND LIKE '%$date_end%'

有任何想法嗎?

謝謝。

您應該確定重新設計架構。

但就像學習案例一樣,你可以:

http://sqlfiddle.com/#!9/22755/4

SELECT t.id,
   t.date
FROM (SELECT
  t1.id,
  DATE(SUBSTRING_INDEX(SUBSTRING_INDEX(t1.value, ',', numbers.n), ',', -1)) `date`
FROM
  numbers 
  INNER JOIN t1
  ON CHAR_LENGTH(t1.value)
     -CHAR_LENGTH(REPLACE(t1.value, ',', ''))>=numbers.n-1
ORDER BY
  id, n ) t
WHERE t.date BETWEEN $date_start AND $date_end

請注意,此解決方案期望您的numbers表具有value列表列中從1到最大元素數的記錄值。

(c)基於https://stackoverflow.com/a/17942691/4421474的代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM