0

データベースへのクエリから結果を取得しようとしていますが、LIMIT が機能していません。LIMIT 10 を入力すると、結果が返されません。ここで何か不足していますか?

これが私のコードです。この奇妙な動作の理由は何かを理解しようとしています。

$username = "derek";
$query = $conn->prepare('SELECT * FROM notifications WHERE (needs=:username OR worker=:username1) ORDER BY CASE WHEN needs=:username2 THEN needsread ELSE workerread END, time DESC LIMIT 10');

$query->bindParam(':username', $username);
$query->bindParam(':username1', $username);
$query->bindParam(':username2', $username);
$query->execute();
4

1 に答える 1

1

私のif文で何かになってしまった。結果を取得していましたが、if ステートメントをフィルター処理した後、表示したい 10 個の結果が表示されるべきではありませんでした。したがって、クエリをデータベースに修正した後、機能しました。これが私のクエリです:

$workneed = "workneed";
$follow="follow";

$query = $conn->prepare('SELECT * FROM notifications WHERE CASE WHEN needs=:username THEN type=:workneed END OR CASE WHEN worker=:username THEN type=:follow END ORDER BY CASE WHEN needs=:username THEN needsread ELSE workerread END, time DESC LIMIT 10');
$query->bindParam(':username', $username);
$query->bindParam(':workneed', $workneed);
$query->bindParam(':follow', $follow);
$query->execute();
于 2013-09-18T05:00:49.900 に答える