Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос в написание запроса...что я делаю не так

Анна Ярославцева Знаток (401), закрыт 1 день назад
Создайте запрос который вернет список всех отзывов из таблицы reviews.

Используйте функцию IF для того чтобы выполнить следующие условия:

Если длина значения поля comment больше 10 символов тогда, обрезаем значение поля comment до 7 символов + добавляем в конце ...

Например: Great m...
Результат должен быть отсортирован по полю comment в порядке убывания.



SELECT (IF comment > 10 (CONCAT(comment, LEFT(comment 7)))) AS movie
FROM reviews
ORDER BY comment DESC
Лучший ответ
Андрей Высший разум (427173) 1 месяц назад
Да, автор соседнего ответа прав в том, что касается IF, но он напахал с сортировкой: "по полю comment", а не по "длине значения в поле comment".

Но в тексте вопроса неоднозначность: сортировка может производиться по оригинальному полю, а может по полю после обрезки.

Вариант сортировки по оригинальному значению поля:
 SELECT
IF(LENGTH(comment) > 10, CONCAT(LEFT(comment, 7), '...'), comment) AS truncated_comment
FROM reviews
ORDER BY comment DESC;
И по обрезанному:
 SELECT 
IF(LENGTH(comment) > 10, CONCAT(LEFT(comment, 7), '...'), comment) AS truncated_comment
FROM reviews
ORDER BY truncated_comment DESC;
Остальные ответы
Денис, Боталов Оракул (75319) 1 месяц назад
Форма даноса совсем другаяяя
morrowind Профи (816) 1 месяц назад
пробуйте:
SELECT IF(LENGTH(comment) > 10, CONCAT(LEFT(comment, 7), '...'), comment) AS comment
FROM reviews
ORDER BY LENGTH(comment) DESC;
Анна ЯрославцеваЗнаток (401) 1 месяц назад
так тоже пробовала пишет не верно
morrowind Профи (816) Анна Ярославцева, SELECT CASE WHEN LENGTH(comment) > 10 THEN CONCAT(LEFT(comment, 7), '...') ELSE comment END AS truncated_comment FROM reviews ORDER BY LENGTH(comment) DESC;
Похожие вопросы