MySQL / SQL检索文本字段的前40个字符?

时间:2010-01-17 11:54:35

标签: php sql mysql chop

如何从mysql db表中检索文本字段,而不是整个文本,只需要几个40个左右的字符。

这可以在sql中完成还是我需要使用php来完成?

基本上我要做的就是显示前x个字符,然后让用户点击它来查看完整内容。

5 个答案:

答案 0 :(得分:59)

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

请参阅LEFT()功能。

作为经验法则,你永远不应该在PHP中为MySQL做些什么。可以这样想:您不希望从数据库向请求的应用程序传输超出必要的任何内容。


编辑 如果您将在同一页面上使用整个数据 (即没有中间请求)不,没有理由一次获取全文。 (见评论和Veger's answer。)

答案 1 :(得分:5)

SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE

MySQL参考手册中的函数:

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

答案 2 :(得分:3)

试试这个......
SELECT LEFT(字段名称,40)FROM表名WHERE条件表示前40和
          SELECT RIGHT(字段名称,40)FROM table name WHERE condition for last 40

答案 3 :(得分:1)

您可以在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个字符,并处理这种情况。

答案 4 :(得分:0)

同时检查一下,

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