从表中选择 ans 和 quest 的更好方法是什么?
SELECT * FROM tablename WHERE option='ans' OR option='quest'";
或者
SELECT * FROM tablename WHERE option='ans' AND option='quest'";
非常感谢!
从表中选择 ans 和 quest 的更好方法是什么?
SELECT * FROM tablename WHERE option='ans' OR option='quest'";
或者
SELECT * FROM tablename WHERE option='ans' AND option='quest'";
非常感谢!
您的第二条语句不会返回任何结果。一条记录不能同时具有 option=ans 和 option=quest。
这不是“更好”方式的问题 - 只有第一个有效。即使您希望在结果集中使用 option=ans和option=quest,WHERE 子句也会每行执行一次。所以你告诉MySQL“给我一行,其中option=quest和option=ans”,即option同时是两个值,这是不可能的。您实际上想要获取其中任一为 true 的行,这就是您使用OR
.
我认为这读起来更好:
SELECT * FROM tablename WHERE option IN('ans','quest');
如果代表问题的行已option
设置为'quest'
并且带有答案的行已option
设置为 ,'ans'
那么您应该使用option='ans' OR option='quest'";
. 此外,一行不能同时代表问题和答案,因此使用AND
不会选择任何行。
此选择将返回选项为ans
或的所有行quest
SELECT * FROM tablename WHERE option='ans' OR option='quest'";
另一方面,此选择不会返回任何行,因为一列只有其中一个值
SELECT * FROM tablename WHERE option='ans' AND option='quest'";
如果您希望搜索返回答案和问题,请使用此选项:
SELECT * FROM tablename WHERE option='ans' OR option='quest';
也可以写成:
SELECT * FROM tablename WHERE option in ('ans','quest');