2013-08-18 6 views
0

PHP에서 mb_substr을 사용할 수 있으며 문자열의 일부를 가져올 수 있습니다. 내 문제는 MySQL에서이 함수를 사용하고 필드 데이터의 일부를 가져오고 싶습니다. 그 중 일부는 foreach을 사용하고 싶지 않습니다.mb_substr을 사용하여 데이터를 가져 오는 방법은 무엇입니까?

아래 코드에서이 함수를 사용하고 싶습니다.

subject은 500 자이며, 데이터베이스는 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 ; 
} 

가이 코드처럼 MySQL의에서 substr를 사용할 수 있습니까?

+0

[** MySQL 함수 하위 문자열 **] (http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring) – Prix

답변

1

이 일을위한 MySQL의 기능은 SUBSTRING()

가 쿼리를 수정 될 것이다 :하지만 당신은 첫 번째 문자에서 시작하고 있기 때문에, 당신이 사용할 수

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

LEFT() :

SELECT id, LEFT(subject, 150) FROM contents; 
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"). ''; 
       } 

이것은 도움이 될 수 있습니다.

관련 문제