специально для случая Pin нужно было спросить, что больше 2 или 10 при типе поля varchar и intа что больше - 11 или гг120?
Прекрасно работает.Автор оригинала: Pin
Мда... select max() в пределах varchar не наботает.
О чем "об этом"? MySQL сравнивает строки в точности так, как это делает подавляющее большинство языков программирования. Если лично ты не понимаешь, как это делается -- это не проблема MySQL.Блин, ман столько раз перечитывал и об этом - ни слова.
Автоопределения чего?Жаль, нет автоопределения класса.
работает корректно как уже сказал Crazy, ты некоректно понимаешь сравнение строкВот о том, что некорректно работает в первом случае и не написано в мане
а колонку под буквы сделать не судьба?Придется отказаться от задумки с буквенными метками
Повторяю медленно. Специально для тех, кто не понимает с первого раза.Автор оригинала: Pin
Вот о том, что некорректно работает в первом случае и не написано в мане (я вроде бы в предыдущем посте так и написал).
Когда max() работает над столбцом типа varchar, то оба аргумента в сравнении -- строки. Этот случай я и отметил в цитате.MySQL performs comparisons using the following rules:
* If one or both arguments are `NULL', the result of the comparison is `NULL', except for the `<=>' operator.
* If both arguments in a comparison operation are strings, they are compared as strings.
* If both arguments are integers, they are compared as integers.
* Hexadecimal values are treated as binary strings if not compared to a number.
* If one of the arguments is a `TIMESTAMP' or `DATETIME' column and the other argument is a constant, the constant is converted to a timestamp before the comparison is performed. This is done to be more ODBC-friendly.
* In all other cases, the arguments are compared as floating-point (real) numbers.