0

私はmb_substrPHPで使用して文字列の一部を取得できます.私の問題は、MySQLでこの関数を使用してフィールドデータの一部を取得したいのですが、その一部を取得するために使用したくないforeach.

この関数を以下のコードで使用したいと思います。

subjectは500文字で、そこから150文字を取得したいのですが、私のデータベースUTF-8はMyISAMで、ストレージエンジンは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 に答える