어떻게 mysql db 테이블에서 텍스트 필드를 검색 할 수 있습니까? 전체 텍스트가 아닌 40 개 정도의 문자 만 검색 할 수 있습니다.MySQL/SQL은 텍스트 필드의 처음 40자를 검색합니까?
SQL에서이 작업을 수행 할 수 있습니까? 아니면 PHP를 사용하여 수행해야합니까?
기본적으로 내가하려는 것은 첫 번째 x 문자를 표시 한 다음 사용자가 전체 콘텐츠를 보려면 클릭하도록 허용하는 것입니다. MySQL의 참조 설명서에
어떻게 mysql db 테이블에서 텍스트 필드를 검색 할 수 있습니까? 전체 텍스트가 아닌 40 개 정도의 문자 만 검색 할 수 있습니다.MySQL/SQL은 텍스트 필드의 처음 40자를 검색합니까?
SQL에서이 작업을 수행 할 수 있습니까? 아니면 PHP를 사용하여 수행해야합니까?
기본적으로 내가하려는 것은 첫 번째 x 문자를 표시 한 다음 사용자가 전체 콘텐츠를 보려면 클릭하도록 허용하는 것입니다. MySQL의 참조 설명서에
SELECT LEFT(field, 40) AS excerpt FROM table(s) WHERE ...
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_left는 LEFT()
기능을 참조하십시오.
엄지 손가락 규칙으로, MySQL에서 할 수있는 일은 PHP로해서는 안됩니다. 이 방법으로 생각해보십시오. DB에서 요청하는 응용 프로그램으로 엄격하게 필요한 것 이상을 전송하고 싶지는 않습니다.
편집더 자주 못하는 것보다 (아무 중간 요청, 즉) 같은 페이지에 전체 데이터 를 사용하는거야 경우는 페치 할 이유 하지 없다 한 번에 전체 텍스트. (의견과 Veger's answer을 참조하십시오.)
SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE
기능 :
이미 표시된 다른 항목과 마찬가지로 SQL에서이 작업을 수행 할 수 있습니다.
사용자가 클릭하면 전체 텍스트를 표시하려는 경우에도 전체 텍스트가 필요하며 데이터베이스에서 사용자에게 짧은 텍스트와 전체 텍스트를 보내려면 낭비하는 것 같습니다. 따라서 전체 텍스트를 가져 와서 사용자가 클릭 할 때 짧은 텍스트와 전체 텍스트를 표시하는 코드를 작성할 수 있습니다. 당신은 당신이 (대신 alert()
의) 그것을 클릭 더 좋은 뭔가를 할 수 당연히
$result = mysql_query('SELECT text FROM table');
$row = mysql_fetch_row($result);
echo '<div onclick="alert(\''.$row[0].'\');">'.substr($row[0], 0, 40).'</div>';
. 또한 원문이 40 자보다 짧고 이와 같은 상황을 처리하는지 확인하기 위해 PHP 검사를 할 수 있습니다.
테이블 이름에서이 ...
SELECT LEFT (필드 이름, 40)을 시도 WHERE 테이블 이름 FROM 조건 처음 40 및
SELECT RIGHT (필드 이름, 40) WHERE 지난 40
확인뿐만 아니라이 하나, 사용자가 클릭 할, 그래서 지금 당신은 더 많은 정보를 전송하는 경우
mysql_query('SELECT LEFT('your text/fieldname', 40) FROM tablename');
정식 버전이 필요합니다 짧은 문자열 **와 ** 전체 문자열! 따라서 엄지의 자신의 규칙을 어기는 ... – Veger
@ 베거 반드시. 당신 말이 맞을지도 모르지만, OP는 단지 "클릭"을 언급합니다 - 전체 텍스트 (예 : 뉴스 항목)가있는 페이지에 대한 링크 일 수 있습니다.이 경우 전체를 가져 와서 페이지를 생성하기 만하면됩니다. 티저 목록. 다른 말로하면 : * 할 수있는 세부적인 양을 감안할 때 최선의 방법을 제공 할 수는 없지만 엄지 손가락의 규칙을 제공하십시오. (본질적으로 - 자주는 아니지만 항상 그렇습니다). – jensgram
맞습니다. 정보가 제공되지 않은 것에 달려 있습니다! – Veger