gpt4 book ai didi

php - php 或 sql 查询中的子字符串

转载 作者:行者123 更新时间:2023-11-28 23:17:59 25 4
gpt4 key购买 nike

我有一个问题。我的 friend 告诉我 PHP 是更好的选择,但我不确定,我认为 sql 可能更快。所以基本上我试图获得 50% 的数据库记录,我使用 mysql 函数 substr 来做到这一点。当然,我可以在获取数据后在 PHP 中做同样的事情,使用下面的这个函数。

数据库

"select *,substr(text,1,(CHAR_LENGTH(text)*0.5)) as text FROM stories"

PHP

$data=$sql->fetchAll(PDO::FETCH_ASSOC);
$length=count($data);
for($i=0;$i<$length;$i++){
$data[$i]['text']=substr($data[$i]['text'],0,strlen($data[$i]['text'])*0.5);}

我应该使用什么,为什么?谢谢

最佳答案

这可能相当复杂,但您的情况很简单。最适合您使用的查询是:

select left(text, char_length(text)*0.5) as text
from stories

请注意,我删除了 *。您不应返回未使用的列。这很容易理解:为什么从数据库传回的数据比您要使用的要多?这只会花费更多时间并低效地使用资源。

我还将 substr() 替换为 left()。这似乎更符合您正在做的事情的精神。

至于字符串操作是在数据库中还是在PHP中进行,就看操作了。这种情况下,操作简单,很容易用MySQL表达。而且,减少数据量有利于改善沟通。

在其他情况下,PHP 的字符串操作功能比 MySQL 好得多。因此,在某些情况下,最好在应用程序级别进行格式化。

关于php - php 或 sql 查询中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com