mysql 查询结果,先查含有某字段的数据,再查其他字段的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 查询结果,先查含有某字段的数据,再查其他字段的数据相关的知识,希望对你有一定的参考价值。

比如表中有关联其他表的ID,其中有1,2,3,4,吧,查询结果想先出来3的,然后再出来1,2,4的,sql怎么写

你是说类似搜索关键字相关度排序的问题吧,我的想法是做分词表,按相关度分配权重,然后按权重通过多条查询关键字条件拼出结果来显示。比如你举的例子,我先查询包含3的数据,再查询不包含3的数据按升序排列,一起存到临时表,再对这个临时表进行输出。 参考技术A create table `newtbl` (
`id` varchar (10),
`name` varchar (10),
`banji` varchar (10)
);
insert into `newtbl` (`id`, `name`, `banji`) values('1','aaa','6');
insert into `newtbl` (`id`, `name`, `banji`) values('2','bb','3');
insert into `newtbl` (`id`, `name`, `banji`) values('3','cc','7');
insert into `newtbl` (`id`, `name`, `banji`) values('4','aaa','8');

试一下效果,
SELECT *FROM newtbl WHERE id IN (SELECT newtbl.id FROM newtbl WHERE banji=7)
UNION
SELECT *FROM newtbl WHERE id<>3
按照下面的这个,应该就可以满足你的需求了,
前提是UNION 的前后数据结构要一致,你需要的输出是一致的,那就没问题了。

SELECT *FROM tbl WHERE (关联的ID)
UNION
SELECT *FROM tbl WHERE (关联的ID)

mysql如何查询某字段里两个值相加结果等于已知道的一个数字

比如我只知道一个结果1000,怎么查询出a表中test字段里随机的两个值相加等于1000,然后获取这两个值的id。主要的条件就是这两个值相加要等于1000。。。哪位牛人知道怎么写。

参考技术A 新建符合条件的查询,然后复制它的sql语句。我猜的。本回答被提问者采纳

以上是关于mysql 查询结果,先查含有某字段的数据,再查其他字段的数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL数据库,如何查询数据库内含有某一列(某字段,如name)的所有表

刷题面筋-数据库-mysql的优化

刷题面筋-数据库-mysql的优化

MySQL 如何多表查询

mysql存储过程,查询指定数据库具体编码类型含有某字符串的所有表名和列名

SQL查找某一字段相同,某一字段不同的数据