2016-01-08 4 views
1

Каков наилучший dataype в MySQL для номера заголовка, например X.X.X (4.3.1)?Тип данных MySQL для номера заголовка?

Спасибо.

+2

кажется 'varchar' является то, что вам нужно ... – nafas

+0

Но VARCHAR не подходит, когда я хочу перечислить порядок DATAS на этом поле. Он работает с неисправным при переходе от 9.9 до 10.0 ... – cancan

+0

неисправен? объясните PLS. Я думаю, что он просто возвращает то, о чем вы просите. возможно, ваш запрос неисправен? – FeedTheWeb

ответ

0

varcar(10) должно быть достаточным. Ваш «4.3.1» составляет 5 цифр, поэтому 10 символов будут поддерживать дополнительных 5 символов. Например. "14.22.1740"

В зависимости от того, насколько велики ваши номера версий могут увеличиться до (и затем добавить несколько символов для учета потенциальных будущих потребностей), будет зависеть от длины хранилища. Текущая версия Google Chrome (или, по крайней мере, тот, который я запускаю), составляет «47.0.2526.106 м» 15 символов.

По сравнению с они начинают становиться кудрявыми, что кажется вашей главной проблемой.

Но сравнение номеров версий всегда было dicey.

В этот момент я бы предложил использовать 3 целых поля «main», «major» и «minor» и отсортировать их по всем трем.

ORDER BY main DESC, major, minor 
+0

Моя проблема заключается в сортировке с номером заголовка. Например, когда я использую varchar и хочу сортировать по названию номера, который не работает, когда номера заголовков идут с 9.9 до 10.1. Мой проект о документах и ​​их содержании. Я не могу оценить, сколько цифр мне понадобится в будущем. Возможно, один документ имеет название с номером 4.4.3.3.2.2. – cancan

+0

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

+0

Спасибо за ваш комментарий и помощь. Это основная причина, по которой я не мог найти решение в google. Я снова и снова меняю вопрос. :) – cancan

Смежные вопросы