0

我可以mb_substr在 PHP 中使用并获取部分字符串,我的问题是我想在 MySQL 中使用此函数并获取部分字段数据,我不想foreach用来获取其中的一部分。

我想在下面的代码中使用这个函数。

subject是 500 个字符,我想从中获取 150 个字符,我的数据库是UTF-8,我的存储引擎是 MyISAM。

        $allContents = $db->loadAssoc( $db->setQuery("SELECT id , subject FROM contents ;") );
        if ( $allContents ){
            $data['success'] = true;
            $data['message'] = $allContents; 
        }
        else{
            $data['success'] = false;
        }

我不喜欢使用这种方法:

$arr = array();
foreach ( $allContents as $value )
{
   $topic['id']      = $value['id'];
   $topic['subject'] = mb_substr($value['subject'],0,150,'UTF-8').' ... ';
   $arr = $topic ;
}

我可以substr像这段代码一样在 MySQL 中使用吗?

4

2 回答 2

1

执行此操作的 MySQL 函数将是SUBSTRING()

将您的查询修改为:

SELECT id, SUBSTRING(subject, 1, 150) FROM contents;

但由于您从第一个字符开始,您可以使用LEFT()

SELECT id, LEFT(subject, 150) FROM contents;
于 2013-08-18T07:14:16.613 回答
1
$query=mysql_query("SET NAMES UTF8");                   
                $sort_content=strlen($row['sort_content']);             
                if($sort_content>260) 
                {
                    $sort = mb_substr($row['sort_content'],0,260, "utf-8"). '...';
                }
                elseif($sort_content<250) 
                {
                    $sort = mb_substr($row['sort_content'],0,250, "utf-8"). '';
                }

这可能会有所帮助

于 2015-02-12T04:42:57.457 回答