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

我怎样才能从MySQL数据库表中检索文本字段,但不是整个文本,只有几十个左右的字符。

这可以在SQL中完成,或者我需要使用PHP来做到这一点?

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

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

请参阅LEFT()函数。

作为一个经验法则 ,你绝不应该在PHP中使用MySQL可以为你做的事情。 您可以这样想:您不希望将任何超出数据库绝对必要的内容传输到请求的应用程序。


编辑 如果您打算在同一页面上使用整个数据(即没有中间请求),那么没有理由一次性获取全文。 (见评论和维格的回答 。)

 SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE 

MySQL参考手册中的函数:

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

尝试这个…
select左(字段名称,40)从表名称WHERE条件为前40和
SELECT RIGHT(字段名称,40)FROM表名称最后40的WHERE条件

你可以在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检查,看看原来是否less于40个字符,并处理这样的情况。

检查这一个以及,

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