MySQL/SQL получает сначала 40 символов текстового поля?

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

Это может быть сделано в sql, или я должен сделать это с помощью php?

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

37
задан John 17 January 2010 в 11:54
поделиться

3 ответа

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

см. Функцию () [) .

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


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

60
ответ дан 27 November 2019 в 04:38
поделиться
SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE

Функция в справочном руководстве MySQL:

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_left

5
ответ дан 27 November 2019 в 04:38
поделиться

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

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

$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 символов и обрабатывает такие ситуации.

1
ответ дан 27 November 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: