Подтвердить что ты не робот

MySQL/SQL извлекает первые 40 символов текстового поля?

Как получить текстовое поле из таблицы mysql db, но не весь текст, всего несколько 40 символов.

Можно ли это сделать в sql или мне нужно сделать это с помощью php?

в основном то, что я пытаюсь сделать, это показать первые символы x, а затем позволить пользователю щелкнуть по нему, чтобы просмотреть полный контент.

4b9b3361

Ответ 1

SELECT LEFT(field, 40) AS excerpt FROM table(s) WHERE ...

Смотрите функцию LEFT().

Как правило, вы никогда не должны делать в PHP то, что MySQL может сделать для вас. Подумайте об этом так: вы не хотите передавать что-то большее, чем строго необходимо из БД, в запрашивающие приложения.


РЕДАКТИРОВАТЬ. Если вы собираетесь использовать все данные на одной странице (т.е. без промежуточного запроса) чаще, чем нет, нет причин не извлекать полный текст за один раз. (См. Комментарии и Ответ Veger.)

Ответ 3

попробуйте это...
SELECT LEFT (имя поля, 40) FROM имя таблицы WHERE условие для первых 40 и
        SELECT RIGHT (имя поля, 40) FROM имя таблицы WHERE условие для последних 40

Ответ 4

Вы можете сделать это в SQL, как показано на других.

Но если вы также хотите показать полный текст, если пользователь нажмет на него, вам также понадобится полный текст, и кажется, что это пустая трата, позволяющая базе данных отправлять вам короткие и полные текст. Таким образом, вы можете получить полный текст и написать код, чтобы показать короткий текст и полный текст, когда пользователь нажимает на него.

$result = mysql_query('SELECT text FROM table');
$row = mysql_fetch_row($result);
echo '<div onclick="alert(\''.$row[0].'\');">'.substr($row[0], 0, 40).'</div>';

Конечно, вы можете сделать что-то приятнее, когда вы нажмете на него (вместо alert()). Кроме того, вы можете сделать некоторые проверки PHP, чтобы увидеть, если оригинал короче 40 символов и обрабатывать такие ситуации.

Ответ 5

Проверьте это,

 mysql_query('SELECT LEFT('your text/fieldname', 40) FROM tablename');