在SQL中,给定此数据集
当我尝试这个查询时
SELECT * FROM table1 WHERE NAME= 'Bob'
它提供了结果,但当我尝试这样做时,它不起作用,但也不会产生任何错误
SELECT * FROM table1 WHERE NAME= 'Bob' AND NAME= 'John';
有人能告诉我我做错了什么吗?
谢谢
编辑:
给定以前的数据集
在dataset表的消息中的任何位置找到单独出现在4条以上消息中但从未在同一条消息中同时出现的任何两个单词?
发布于 2014-03-09 02:58:36
您应该使用OR
而不是AND
。
SELECT * FROM table1 WHERE NAME= 'Bob' OR NAME= 'John';
NAME
不能同时是Bob
和John
,但是Bob
或John
发布于 2014-03-09 02:58:55
第二个查询返回记录,其中Name="Bob"
和Name="John"
将始终为空。你可以这样做:
SELECT * FROM table1 WHERE NAME= 'Bob' OR NAME= 'John';
它将返回名为Bob 或 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中的结果
阅读更多关于逻辑运算符的信息。
编辑:
对于第二个问题,请使用以下查询:
SELECT name,message
FROM table1
WHERE ROUND ((CHAR_LENGTH(message)
- CHAR_LENGTH( REPLACE ( message, "out", "") )
)/CHAR_LENGTH("out")) =1
它选择message
只包含"out"
一次的记录。
参见SQL Fiddle中的示例
查看查询是如何工作的这里。
发布于 2014-03-09 03:24:05
除了使用OR
之外,另一种方法就是只使用IN
SELECT * FROM table1 WHERE NAME IN ('Bob', 'John');
https://stackoverflow.com/questions/22281320
复制