在SQL中,给定this dataset
当我尝试此查询时
SELECT * FROM table1 WHERE NAME= 'Bob'
它提供了结果,但是当我尝试这个时,它不起作用但它也没有给出任何错误
SELECT * FROM table1 WHERE NAME= 'Bob' AND NAME= 'John';
有人可以告诉我我做错了吗?
由于
编辑:
鉴于以前的数据集
查找数据集消息中出现的任何两个单词 在超过4条消息中单独出现的表但是 从来没有在同一个消息中?
答案 0 :(得分:3)
您应该使用OR
代替AND
。
SELECT * FROM table1 WHERE NAME= 'Bob' OR NAME= 'John';
NAME
不能同时为Bob
和John
,但Bob
或John
答案 1 :(得分:3)
第二个查询返回Name="Bob"
和Name="John"
始终为空的记录。
你可以尝试这样:
SELECT * FROM table1 WHERE NAME= 'Bob' OR NAME= 'John';
它将返回名称为Bob OR John。
的记录结果将是:
DATA NAME MESSAGE TIMEZONE
01/03/2014 10:27 Bob What time do you want to meet? London
18/02/2014 02:43 John What time is it in London? New york
14/02/2014 00:50 Bob Meeting today? London
请参阅SQL Fiddle
中的结果详细了解Logical Operators。
修改强>
对于第二个问题,请使用此查询:
SELECT name,message
FROM table1
WHERE ROUND ((CHAR_LENGTH(message)
- CHAR_LENGTH( REPLACE ( message, "out", "") )
)/CHAR_LENGTH("out")) =1
选择message
仅包含"out"
一次的记录。
请参阅SQL Fiddle
中的示例查看查询的工作原理here。
答案 2 :(得分:2)
除了使用OR
之外,另一种方法就是使用IN
SELECT * FROM table1 WHERE NAME IN ('Bob', 'John');
答案 3 :(得分:2)
有一件事在逻辑上是不正确的。 您正在使用
SELECT * FROM table1 WHERE NAME= 'Bob' AND NAME= 'John';
但是,名称字段不能同时是'Bob'和'John'。 它可能是'Bob'OR'John'
可能你想做这件事。如果我没错?
SELECT * FROM table1 WHERE NAME= 'Bob' OR NAME= 'John';
否则,请使用此内容
SELECT * FROM table1 WHERE NAME IN ('Bob', 'John');