2

たとえば、コメントがあり、そのコメントにリストに表示する最小文字があるかどうかを SQL 内で確認したい場合など、SQL クエリ内に関数がある場合:

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

問題は次のとおりです。この関数のパラメーターとして id を使用するにはどうすればよいですか?

4

1 に答える 1

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 と呼ばれる場合があります。

于 2012-11-18T15:43:39.817 に答える