我使用php和mysql为字母A-Z创建分页。我在表格中有单个记录字母A.当我查询记录时,它将返回多行而不是单行。此外,链接的表格仅包含A&#39的电影ID的单行记录。任何表中都没有一对多的关系。如果我在那里犯了任何错误,请通过以下查询正确。在此先感谢。
select
M.name,
M.id, (select year(M.released_date))as year,
MS.storyrating,
S.screenplayrating,
MS.dialoguerating,
MS.directionrating,
MS.musicrating,
MS.bgmrating,
MS.cinematographyrating,
MS.characterizationrating,
MS.shotlocationrating,
MS.editingrating,
MS.productionrating,
MI.director,
MI.musicdirector
from tttbl_movie M, tttbl_movie_info MI, tttbl_movie_score MS
where M.id=MI.movie_id
and M.id=MS.movie_id
AND M.name 'A%' OR M.name 'a%'
ORDER BY M.name ASC LIMIT 0,2;
答案 0 :(得分:0)
尝试更改您的ORDER BY
ORDER BY M.name ASC LIMIT 1;
你错过了like
条款中的OR
,我认为这是一个错字,因为你说你得到了2条记录。
答案 1 :(得分:0)
你的代码中没有喜欢的条款
select
M.name,
M.id,
year(M.released_date as year,
MS.storyrating,
S.screenplayrating,
MS.dialoguerating,
MS.directionrating,
MS.musicrating,
MS.bgmrating,
MS.cinematographyrating,
MS.characterizationrating,
MS.shotlocationrating,
MS.editingrating,
MS.productionrating,
MI.director,
MI.musicdirector
from tttbl_movie M, tttbl_movie_info MI, tttbl_movie_score MS
where M.id=MI.movie_id
and M.id=MS.movie_id
AND M.name like 'A%' OR M.name like 'a%' ORDER BY M.name ASC LIMIT 0,2;
如果你需要它最终限制1
LIMIT 1;
答案 2 :(得分:0)
您需要添加LIKE
关键字,我认为您应该为OR
部分添加括号
where M.id=MI.movie_id
and M.id=MS.movie_id
and (M.name LIKE 'A%' OR M.name LIKE 'a%')
ORDER BY M.name ASC;