我有一个示例表,其中包含以下行的答案。 id可能是重复的,因为它与基于id的问题表连接(即一个问题可以有多个答案)
answers.id | answers.username | answer | date
1 | mikha | you | 2013-01-01 00:00:00
1 | maricela | really | 2013-01-01 00:00:00
1 | guy | rock | 2013-01-01 00:00:00
我可以使用“maricela”在答案之后选择所有行的查询吗?
类似于:
SELECT * FROM answers WHERE id = 1 AND answers.username > 'maricela'
但是上面会返回0行,因为上面这样做将按字母顺序选择,而字母按字母顺序排在maricela之前。
是否有任何方法可以逐行选择值?在ID=1
和USERNAME=mariclea
之后排?
答案 0 :(得分:2)
我强烈建议您在答案表中添加唯一ID,并有一个新列用于加入问题表:
question_id | id | username | answer | date
1 | 1 | mikha | you | 2013-01-01 00:00:00
1 | 2 | maricela | really | 2013-01-01 00:00:00
1 | 3 | guy | rock | 2013-01-01 00:00:00
然后你可以使用:
SELECT * FROM answers WHERE id > (
SELECT id FROM answer WHERE username = 'maricela' and question_id = 1
)
答案 1 :(得分:0)
答案 2 :(得分:0)
这就是这样做,
SELECT b.* FROM table1 b WHERE b.id>
(SELECT a.id FROM table1 a WHERE a.username='maricela'
and a.answer_id=1)