Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想在这个mysql语句中使用哪个逻辑运算符?_Mysql_Boolean Logic - Fatal编程技术网

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

我想在这个mysql语句中使用哪个逻辑运算符?,mysql,boolean-logic,Mysql,Boolean Logic,从表中选择ans和任务的更好方法是什么 SELECT * FROM tablename WHERE option='ans' OR option='quest'"; 或 非常感谢 您的第二条语句不会返回任何结果。记录不能同时具有option=ans和option=quest。这不是一个“更好”方法的问题,只有第一种方法有效。即使在结果集中需要option=ans和option=quest,WHERE子句每行执行一次。所以你告诉MySQL“给我一行option=quest和option=ans”

从表中选择ans和任务的更好方法是什么

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


非常感谢

您的第二条语句不会返回任何结果。记录不能同时具有option=ans和option=quest。

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

我认为这样读起来更好:

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

如果表示问题的行将
选项设置为
'quest'
,而表示答案的行将
选项设置为
'ans'
,则应使用
选项='ans'或选项='quest'";。此外,一行不能同时表示问题和答案,因此使用
不会选择任何行。

此选择将返回所有选项为
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');

我想你可以把“可能”这个词从你的陈述中去掉:)哎呀,对不起。请参见编辑。
SELECT * FROM tablename WHERE option in ('ans','quest');