Как использовать строку/значение столбца в качестве mysql постоянного интервала даты (ДЕНЬ, МЕСЯЦ …)?

Одна из вероятных причин заключается в том, что разметка обычно меняет НАМНОГО чаще, и ее придется минимизировать для каждой загрузки страницы. Например, на данной странице переполнения стека есть временные метки, имена пользователей и количество повторов, которые могут меняться при каждой загрузке страницы, а это значит, что вам придется минимизировать и для каждой загрузки страницы. С помощью «статических» файлов, таких как css и javascript, вы можете минимизировать гораздо реже, так что, по мнению некоторых, это стоит того, чтобы работать заранее.

Учтите также, что каждый крупный веб-сервер и браузер поддерживают gzip, который в любом случае сжимает всю вашу разметку ( быстро ) на лету. Поскольку минимизация медленнее и намного менее эффективна, чем gzipping в любом случае, веб-мастера могут решить, что минимизация для каждой загрузки страницы не стоит затрат на обработку.

21
задан 20 May 2009 в 16:30
поделиться

2 ответа

Я думаю, вам лучше использовать оператор CASE для каждого возможного значения столбца единицы измерения, поскольку это конечный мир. Вы можете выбрать, сохранять ли столбец как varchar или использовать вместо него целочисленный код.

Я бы не рекомендовал использовать динамически выполняемые операторы SQL, даже если они сгенерированы из существующей таблицы, если вы не на 120% осторожны в ограничении значений, которые вставляются в таблицу. Что бы вы сделали, если бы в таблице каким-то образом оказались следующие значения? Упс!

+------------+------+------------------------------------+
| date       |value |                 unit               |
+------------+------+------------------------------------+
| 2009-01-01 |    2 | DAY                                | 
| 2009-02-01 |    3 | MONTH                              |
| 2009-03-01 |    4 | DAY) FROM table; DROP TABLE table; | 
+------------+------+------------------------------------+
7
ответ дан 29 November 2019 в 21:58
поделиться

Я занимаюсь переустановкой MySQL на моем компьютере, поэтому я не могу его протестировать, но, возможно, объединение их в действительную строку может помочь, если здесь разрешена функция CONCAT ():

SELECT 
   DATE_ADD(
      table.date_column, 
      INTERVAL CONCAT(
         table.integer_column,
         ' ',
         table.varchar_column
      )
   )
-3
ответ дан 29 November 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: