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

Php MySQL/SQL是否检索文本字段的前40个字符?,php,mysql,sql,Php,Mysql,Sql,如何从mysql db表中检索一个文本字段,而不是整个文本,只有大约40个字符 这可以在sql中完成,还是需要使用php来完成 基本上我要做的是显示前x个字符,然后让用户点击它来查看完整的内容 SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE MySQL参考手册中的函数: 请参阅函数 根据经验,您永远不应该在PHP中做MySQL可以为您做的事情。可以这样想:您不希望从数据库向请求应用程序传输任何严格必需的内容 编辑如果要经常使用同一页面上的整个数据(即,没有

如何从mysql db表中检索一个文本字段,而不是整个文本,只有大约40个字符

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

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

SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE
MySQL参考手册中的函数:

请参阅函数

根据经验,您永远不应该在PHP中做MySQL可以为您做的事情。可以这样想:您不希望从数据库向请求应用程序传输任何严格必需的内容



编辑如果要经常使用同一页面上的整个数据(即,没有中间请求),没有理由不立即获取全文。(请参见注释和注释。)

您可以在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>';
$result=mysql\u查询('selecttext fromtable');
$row=mysql\u fetch\u row($result);
回显“”。substr($row[0],0,40)。“”;

当然,当您单击它时,您可以做得更好(而不是
alert()
)。您还可以现在进行一些PHP检查,查看原始文件是否少于40个字符,并处理类似的情况。

试试这个
从表名中选择左侧(字段名,40),其中条件为前40和

从表名中选择右键(字段名,40),其中条件为过去40年的条件

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

当用户单击它时,需要完整版本,因此现在您正在传输更多信息:短字符串和完整字符串!因此打破了你自己的经验法则…@Veger不一定。你们可能是对的,但OP只是提到了一个“点击”——它可能是一个指向全文页面的链接(例如,一条新闻),在这种情况下,你们不想为了生成一个摘要列表而获取所有内容。换言之:鉴于我无法给出最佳方式的详细信息,只需提供一条经验法则(这在本质上是经常的,但不总是正确的)。点击后,用户将移动到另一个页面,基本上在我的网站主页上,我将允许用户查看论坛的最新帖子,然后如果他们点击它,他们将进入论坛帖子。因此,它很像一个新闻页面,您可以点击浏览整篇文章。@John在这种情况下,您将遵循经验法则:在主页查询中使用
LEFT()
。没错!如果要更频繁地使用整个文本,没有理由不一次获取所有文本。假设John想要短文本,因为用户只需要大多数行的短文本,可能只需要几行的全文?否则,用户将单击以查看包含其他信息的新页面。
 mysql_query('SELECT LEFT('your text/fieldname', 40) FROM tablename');