2016-09-01 2 views
1

Я просто хочу вырезать свою строку после 150 символов и добавить «...» в конец. Я уже нашел некоторые решения здесь для своей проблемы с помощью «case when» и «left», но он продолжает реагировать на неправильный синтаксис или дает мне просто «0», даже если я попробую идентичный код из решений. Я использую PDO и PHP.Усечь текст и добавить эллипсы PHP SQL

Вот мой код:

$feedbackquery = "SELECT CASE WHEN length(text) >= 150 THEN left(text, 150) + '...' ELSE 
text END text FROM feedback ORDER BY RAND() LIMIT 1"; 

$database->query($feedbackquery); 
$feedbackinput = $database->fetch(); 

Помощь больш была бы оценена :)

+1

Какая ошибка? Я бы использовал 'concat', а не' + '; http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat. – chris85

+0

Что вы сделали для отладки кода до сих пор? – tvo

ответ

2

MySQL не использует + для конкатенации строк. Существует встроенная функция CONCAT:

SELECT 
    CASE WHEN length(text) >= 150 THEN 
     CONCAT(LEFT(text, 150), '...') 
    ELSE 
     text 
    END text 
FROM feedback 
ORDER BY RAND() 
LIMIT 1 
+0

Спасибо, сэр! Работает как шарм. – Franky2207

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