SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
创新互联建站专注于企业成都全网营销、网站重做改版、睢阳网站定制设计、自适应品牌网站建设、H5网站设计、商城系统网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为睢阳等各大城市提供网站开发制作服务。
下面是原始数据表:
table1: s1
2
10
table2: s2
5
12
20
ANY 操作符
ANY 关键字必须接在一个比较操作符的后面,表示与子查询返回的任何值比较为 TRUE ,则返回 TRUE 。一个 ANY 例子如下:
SELECT s1 FROM table1 WHERE s1 ANY (SELECT s2 FROM table2)
查询返回结果如下所示:
s1
10
在子查询中,返回的是 table2 的所有 s2 列结果(5,12,20),然后将 table1 中的 s1 的值与之进行比较,只要大于 s2 的任何值即表示为 TRUE,符合查询条件。
any里应该是一个数据列子查询的结果。
SELECT *
FROM table1
WHERE money ANY(SELECT money FROM table1 WHERE id 1000);
这样就是好用的。
你多写了一个%,LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串)。LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
出现在select语句中的select语句,称为子查询或内查询。
外部的select查询语句,称为主查询或外查询。
测试数据比较多,放在我的个人博客上了。
浏览器中打开链接:
mysql中执行里面的 javacode2018_employees库 部分的脚本。
成功创建 javacode2018_employees 库及5张表,如下:
运行最后一条结果如下:
in,any,some,all分别是子查询的关键词之一。
in :in常用于where表达式中,其作用是查询某个范围内的数据
any和some一样 : 可以与=、、=、、=、结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据。
all :可以与=、、=、、=、结合使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的其中的所有数据。
下文中会经常用到这些关键字。
运行结果:
not in的情况下,子查询中列的值为NULL的时候,外查询的结果为空。
建议:建表是,列不允许为空。