MYSQL教程MySQL查询in操作 查询结果按in集合顺序显示
发布时间:2020-12-12 01:08:11 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL教程MySQL查询in操作 查询结果按in集合顺序显示》要点: 本文介绍了MYSQL教程MySQL查询in操作 查询结果按in集合顺序显示,希望对您有用。如果有疑问,可以联系我们。 MySQL 查询in操作,查询结果按in集合顺序显示 代码如下: select * from test where
《MYSQL教程MySQL查询in操作 查询结果按in集合顺序显示》要点: 代码如下: select * from test where id in(3,1,5) order by find_in_set(id,'3,5'); select * from test where id in(3,5) order by substring_index('3,2',id,1); 偶尔看到的...或许有人会注意过,但我以前真不知道 SQL: select * from table where id IN (3,6,9,2,5,8,7); 这样的情况取出来后,其实,id还是按1,3,4,7,排序的,但如果我们真要按IN里面的顺序排序怎么办?SQL能不能完成?是否需要取回来后再foreach一下?其实mysql就有这个方法 sql: select * from table where id IN (3,7) order by field(id,7); 出来的顺序就是指定的顺序了....这个,以前还真的从来没用过,偶尔看到,所以就记录了一下.一是做个笔记,二是希望可以给更多的人看到 MySQL中NOT IN语句对NULL值的处理 mysql> SELECT COUNT(name) FROM CVE WHERE name NOT IN ('CVE-1999-0001','CVE-1999-0002'); +-------------+ | count(name) | +-------------+ | 17629 | +-------------+ 1 row in set (0.02 sec) mysql> SELECT COUNT(name) FROM CVE WHERE name NOT IN ('CVE-1999-0001','CVE-1999-0002',NULL); +-------------+ | count(name) | +-------------+ | 0 | +-------------+ 1 row in set (0.01 sec) 当在子查询中出现NULL的时候,结果就一定是0了.查了一下手册,确实有这样的说法.所以最后实际采用了这样的查询: SELECT COUNT(DISTINCT name) FROM CVE WHERE name NOT IN (SELECT cveID FROM cve_sig WHERE cveID IS NOT NULL) 顺便提一下MySQL中正则表达式匹配的简单使用: SELECT COUNT(alarmID) FROM Alarm WHERE (CVE NOT RLIKE '^CVE-[0-9]{4}-[0-9]{4}$' OR CVE IS NULL) 当然,RLIKE也可以写作REGEXP,我个人倾向于使用RLIKE,因为拼写接近LIKE,可以见名知义. mysql - not in table:info primary key(id,info_type_id) id,info_type_id,programme_id,episode_id 3,382,100034 3,100034 4,100034 6,100034 7,100034 8,100034 9,100034 10,100034 11,100034 12,100034 13,100034 100001,100034 100002,100034 排除(id=3 && info_type_id=8) and (id=4 && info_type_id=8)@l,即找出其它 error: select * from info where episode_id=100034 and id not in(3,4) and info_type_id not in (8); error result: id,episode_id 100001,100034 correct: select * from info where episode_id=100034 and (id<>3 or info_type_id<>8) and (id<>4 or info_type_id<>8); correct result: id,100034 理解:id<>3 or info_type_id<>8排除掉id=3 && info_type_id=8@l,表中主I多于一r,不能蔚厥褂key1 NOT IN (……) AND key2 NOT IN (……) .. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ubuntu 重装mysql 并通过.frm .ibd进行数据恢复
- mysql – 如果主键是由数据库生成的,如何使用em.merge()为
- MySQL 5.0全新的SQL句法sp_executesql
- 我使用哪个MySQL连接器:mysql-connector-java-5.1.46.jar或
- Mysql入门wampserver下mysql导入数据库的步骤
- php – 参数化查询示例
- Mysql学习mysql 5.7.14 下载安装、配置与使用详细教程
- Mysql入门SQL重复记录查询 查询多个字段、多表查询、删除重
- Mysql必读mysql字符编码修改方法 命令行修改mysql字符编码
- 仅通过MDF数据文件还原SQL Server数据库