2012-02-06 8 views
13

많은 데이터가 포함 된 테이블이 있고 그 중 하나가 blob입니다. 필자는 PHP를 사용하여 데이터를 보려면이 BLOB를 조사해야합니다. ,MySQL Blob 필드에서 부분 선택

로렘 입숨 슬픔이 AMET 앉아 :

select `desc` from table where `desc` like '%Nam rhoncus%'; 

이 전체 데이터를 반환하지만 내 설명이 같은 경우는

그래서 필요가 없습니다

내가 할 consectetur adipiscing 엘리트. 한순간에 velit. 정수는 접두사 앞에 붙어 있습니다. Mauris cursus, neque eu ultrices pulvinar, purus purus fermentum libero, eleifend에서 tortor orci quis lectus. 악의적 인 신생아 기시 근무자 libero consectetur. Maecenas 자연 보호 시설입니다. Donec gravida interdum vehicula. 성숙한 종아리는 아치형이다 조미료. Fusce ut ligula ante, nec placerat felis. Maecenas 또는 nuch, ut luctus urna. 밤에는 저녁 식사와 저녁 식사가 있습니다. 로렛을 만들어보세요. Nunc lobortis porttitor tempor. Nulla ipsum neque, viverra에 앉아서, pharetra non tortor. 레오 Phasellus에서 pellentesque nunc ultrices euismod.

Nulla ullamcorper sclerisque leo, 그 결과로 fringilla id. Nulla facilisi. Cras는 성격에 따라 달라집니다. Duis interdum, sapien quis laoreet bibendum, 듀퐁 turpis imperdiet magna, id 아쿠아 메르 쿠 솔라 리티 솔라리스. 정수 blandit, turpis eget interdum 상품, 대부 겉옷, AC congue purus dui quis nisl. egestas에서 Etiam blandit eleifend tortor입니다. Vestibulum euismod orci ac nibh consectetur feugiat. Praesent ac libero quam. 모로 엘리트 nulla, gravida ac blandit eu, bibendum vitae lacus. 시설에서 pipses alipsam auctor. 남 Rhoncus, purus eget fringilla ullamcorper, mauris tellus fermentum lectus, 유방염 아킬레스 건 dolor. 서스펜스에 오스, 오클라호마, 웨일스 어, 웨일스 어, 웨일스 어 turpis. 아슬 아슬한 옷을 입을 수있는 즐거움. Proven 은 다양성으로 인해 다양성을 나타냅니다.내가 찾고 있어요

:

...m auctor. Nam rhoncus, purus eg...

+0

당신이'\''와'desc'를 탈출하는 것을 잊지 않았다? –

+0

@BookOfZeus 네, 고쳐 주시오 –

답변

15

이 쿼리 :

SELECT 
    CONCAT(
    '...', 
    SUBSTR(`description`, 
     LOCATE('Nam rhoncus', `description`) - 10, 
     (LENGTH('Nam rhoncus') + 20)), 
    '...') AS `description` 
FROM table 
WHERE `description` LIKE '%Nam rhoncus%'; 

(I 그래서 그건이처럼 고장 Nam rhoncus 내가 좋아하는 요소를 선두를 얻으려면 읽기 쉬움)

출력 할 내용 :

...m auctor. Nam rhoncus, purus eg...

그래서 당신의 PHP에 당신이 할 수 있습니다

<?php 
define('CHAR_LEFT', 10); 
define('CHAR_RIGHT', 10); 
// db stuff 
$search = mysql_real_escape_string($search_var); 
$query = "SELECT CONCAT('...', SUBSTR(`description`, LOCATE('" . $search . "', `description`) - " . CHAR_LEFT . ", (LENGTH('" . $search . "') + " . (CHAR_LEFT + CHAR_RIGHT) . ")), '...') AS `description` FROM table WHERE `description` LIKE '%" . $search . "%';"; 
// then your request 

참고 : 아픈 내가 대신 description를 사용하는 이유는, MySQL이 말을 역으로 이용하여 조심하세요. 다음과 같은

+0

감사합니다.이게 내가 필요한 것입니다. –

+0

당신은 진심으로 감사드립니다. –

0

뭔가 당신이 필요로하는 무엇을 수행해야합니다

SELECT 
    SUBSTR(description, INSTR(description, 'Nam rhoncus'), LENGTH('Nam rhoncus')) matchStr 
FROM 
    testTable 
WHERE 
    description like '%Nam rhoncus%' 
;