#mysql #sql #dom #select #xampp
#mysql #sql #dom #выберите #xampp
Вопрос:
Я написал свой SQL-код следующим образом, и последний возвращаемый идентификатор — S9, просто имейте в виду, что я хочу, чтобы рядом с номером был алфавит. Итак, какой код SQL позволяет мне выбрать последний идентификатор, который равен S12? Пожалуйста, помогите мне.
SELECT IdSoalan FROM SOALAN ORDER BY IdSoalan DESC LIMIT 1
Комментарии:
1. Должен существовать столбец, в котором описывается, какой идентификатор идет первым или последним. Сами таблицы SQL не имеют понятия «порядок».
Ответ №1:
Причина order by
, по которой это происходит, заключается в том, что ваши IdSoalan
данные являются буквенно-цифровыми. Вы не должны использовать этот тип данных как обычный ID
, но попробуйте это :
ORDER BY LENGTH(IdSoalan), IdSoalan
это должно сделать ваш порядок данных таким :
S1 — S9 затем S10 — S12 и продолжайте.
для нисходящей формы просто укажите desc
оба.
ORDER BY LENGTH(IdSoalan) DESC, IdSoalan DESC
Комментарии:
1. используйте тот же запрос, который вы получили, и просто измените
order by
предложение.2. я пытаюсь добавить ОГРАНИЧЕНИЕ DESC 1 в конце вашего кода, но все равно возвращаю S9
3.
SELECT IdSoalan FROM SOALAN ORDER BY LENGTH(IdSoalan) DESC, IdSoalan DESC LIMIT 1
4. убедитесь, что у вас есть оба
desc
5. @SzeYuSim для меня это своего рода bruh, потому что эти два ответа точно такие же, но я рад, что в любом случае решаю это.
Ответ №2:
Попробуйте это:
SELECT IdSoalan FROM SOALAN ORDER BY LENGTH(IdSoalan) DESC, IdSoalan DESC LIMIT 1
Он сортирует по длине столбца в порядке убывания, а затем по значению в порядке убывания и ограничивает результат 1. В MySQL это называется естественной сортировкой.