たとえば、コメントがあり、そのコメントにリストに表示する最小文字があるかどうかを SQL 内で確認したい場合など、SQL クエリ内に関数がある場合:
$bdd->query('SELECT id, comment FROM comments WHERE count > '. count_chars("id").' ORDER BY time');
問題は次のとおりです。この関数のパラメーターとして id を使用するにはどうすればよいですか?
たとえば、コメントがあり、そのコメントにリストに表示する最小文字があるかどうかを SQL 内で確認したい場合など、SQL クエリ内に関数がある場合:
$bdd->query('SELECT id, comment FROM comments WHERE count > '. count_chars("id").' ORDER BY time');
問題は次のとおりです。この関数のパラメーターとして id を使用するにはどうすればよいですか?
クエリの結果を設定するために、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 と呼ばれる場合があります。