2012-07-21 2 views
2

내가 SQL 쿼리 내부 기능이있는 경우, 예를 들어 내가 의견이 내가 그 댓글이 목록에 표시 할 수있는 최소 문자있는 경우 SQL 내부 확인하려면 :어떻게 SQL 쿼리 내에서 매개 변수 함수로 SQL 값을 사용합니까?

$bdd->query('SELECT id, comment FROM comments WHERE count > '. count_chars("id").' ORDER BY time'); 

그래서 문제입니다 : 이 함수의 매개 변수로 id를 어떻게 사용할 수 있습니까?

+0

확인이 : http://stackoverflow.com/questions/1406257/ mysql-query-with-php-function-compare 및 http://stackoverflow.com/questions/4750891/a-php-function-inside-a-mysql-query –

+0

어떤 DBMS를 사용하고 있습니까? PostgreSQL? 신탁? DB2? –

+0

mysql을 unsing mys – user850690

답변

0

SQL 쿼리에서 PHP 함수를 사용하여 쿼리 결과를 설정하려고합니다. 그러나 PHP는 이 아니며 쿼리 프로세스에 포함 된이 아닙니다. 쿼리를 DB로 보내고 실제로 처리됩니다. 따라서 쿼리 내에서 PHP 함수를 사용하면 항상 정적 값이되고, DB가 행을 반복 할 때 변경되지 않습니다. 따라서 SQL 함수, 즉 LENGTH()를 사용해야합니다.

50 개 이상의 문자가있는 경우에만 주석을 선택하려면

$bdd->query('SELECT id, comment FROM comments WHERE LENGTH(comment)>50 ORDER BY time') // 

참고 :이 기능은 사용자의 MySQL 버전에 따라, LEN 호출 할 수