##解決したいこと
SELECT ROW_NUMBER()OVERを使って、データを取得したいが、以下のコードを実行するとエラーが出る。
$sql = 'SELECT ROW_NUMBER() OVER(ORDER BY p.kickoff ASC) as "点数", p.kickoff as "試合日時", c.name as "対戦相手", g.goal_time as "ゴールタイム" FROM pairings as p LEFT JOIN countries as c ON p.enemy_country_id = c.id LEFT JOIN goals as g ON g.pairing_id = p.id WHERE g.player_id = :id'; $sth = $this->dbh->prepare($sql); $sth->bindValue(':id', $id, PDO::PARAM_INT); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_ASSOC); return $result;
##該当エラー
SELECT ROW_NUMBER() OVER(ORDER BY p.kickoff ASC) as "点数", p.kickoff as "試合日時", c.name as "対戦相手", g.goal_time as "ゴールタイム"
SQLを実行してみたところ、エイリアスエラーなどが表示される。
#1064 - SQL構文エラーです。バージョンに対応するマニュアルを参照して正しい構文を確認してください。 : '(ORDER BY p.kickoff ASC) as "点数", p.kickoff as "試合日時", c.name as "' 付近 1 行目
など
mysqlのバージョンは5.7です。
##試したこと
・データベースの接続に問題はないか?
→問題ない。一覧取得や他の詳細データを取得できる。
・SELECT文の中身を変更したら、データは取得できるか?
→できる。例: SELECT * FROM playersなどを実行してみた。
ROW_NUMBERの使い方とか調べましたが、自分では解決できず困っています。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/03/14 02:24
2021/03/14 06:00
2021/03/14 06:19 編集