我想在这个mysql语句中使用哪个逻辑运算符?

时间:2010-05-08 14:01:47

标签: mysql boolean-logic

从表格中选择ans和quest的更好方法是什么?

SELECT * FROM tablename WHERE option='ans' OR option='quest'";

OR

SELECT * FROM tablename WHERE option='ans' AND option='quest'";

非常感谢!

5 个答案:

答案 0 :(得分:7)

你的第二个陈述不会返回任何结果。记录不能同时具有option = ans和option = quest。

答案 1 :(得分:4)

这不是一个“更好”的问题 - 只有第一个有效。即使您在结果集中需要option = ans option = quest,WHERE子句每行执行一次。所以你告诉MySQL“给我一行选项= quest和option = ans”,即选项是两个值,这是不可能的。实际上,您希望获得其中任何一个为真的行,这就是您使用OR

的原因

我认为这样做更好:

SELECT * FROM tablename WHERE option IN('ans','quest');

答案 2 :(得分:2)

如果代表问题的行option设置为'quest',而回答的行option设置为'ans',那么您应该使用option='ans' OR option='quest'";。此外,行不能同时代表问题和答案,因此使用AND不会选择任何行。

答案 3 :(得分:1)

此选项将返回选项为ansquest

的所有行
SELECT * FROM tablename WHERE option='ans' OR option='quest'";

另一方面,此选择不会返回任何行,因为列只有其中一个值

SELECT * FROM tablename WHERE option='ans' AND option='quest'";

答案 4 :(得分:0)

如果您希望搜索返回答案和问题,请使用此选项:

SELECT * FROM tablename WHERE option='ans' OR option='quest';

也可以写成:

SELECT * FROM tablename WHERE option in ('ans','quest');