【发布时间】:2011-01-06 01:19:54
【问题描述】:
如何从 mysql db 表中检索文本字段,而不是整个文本,只有 40 个左右的字符。
这可以在sql中完成还是我需要使用php来完成?
基本上我要做的是显示前 x 个字符,然后让用户单击它以查看完整内容。
【问题讨论】:
如何从 mysql db 表中检索文本字段,而不是整个文本,只有 40 个左右的字符。
这可以在sql中完成还是我需要使用php来完成?
基本上我要做的是显示前 x 个字符,然后让用户单击它以查看完整内容。
【问题讨论】:
SELECT LEFT(field, 40) AS excerpt FROM table(s) WHERE ...
参见LEFT() 函数。
作为一个经验法则,您永远不应该在 PHP 中做 MySQL 可以为您做的事情。可以这样想:您不想从数据库向发出请求的应用程序传输任何超出严格必要的信息。
编辑 如果您将在同一页面上使用整个数据(即,没有中间请求)比不,没有理由不立即获取全文。 (见 cmets 和Veger's answer。)
【讨论】:
LEFT()。
SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE
MySQL参考手册中的功能:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_left
【讨论】:
试试这个...
SELECT LEFT(field name, 40) FROM table name WHERE condition 用于前 40 和
SELECT RIGHT(field name, 40) FROM表名 WHERE 条件 为最后 40
【讨论】:
您可以在 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 个字符并处理这样的情况。
【讨论】:
也检查一下这个,
mysql_query('SELECT LEFT('your text/fieldname', 40) FROM tablename');
【讨论】: