mysql联表查询后,将某个字段的特定值排序在最前面

2020-11-30 06:53:30 字数 3821 阅读 8773

1楼:匿名用户

查询成功了,但是你没有把查询的值赋给变量,所以你肯定得不到值,$sql = "select meta_value from wp_postmeta where meta_key = 'img-link' and post_id =1";

$result=mysql_query($sql);

while ($row = mysqli_fetch_assoc($result))//用myql_fetch_assoc函数取值,可以确保多行数据时能循环输出,mysql_fetch_array只能取得最前面的一行数据

mysql 排序把字段等于某个值的数据放在前面显示,其它放在后面,比如字段a=3的数据,优先显示

2楼:汪雄辉拉

select * from tbname order by a=3 desc

mysql 查询时 按照某个字段计算后的值 排序?

3楼:山水阿锐

先把分类全取出来,并随机排序,取排在第一个分类。

4楼:匿名用户

select 商品名称, 商品原价, 折扣率, (商品原价*折扣率) as 折后价 from 表 order by 折后价

5楼:卫青芬仰卯

查询成功了,但是你没有把查询的值赋给变量,所以你肯定得不到值,$sql

="select

meta_value

from

wp_postmeta

where

meta_key

='img-link'

andpost_id

=1";

$result=mysql_query($sql);

while

($row

=mysqli_fetch_assoc($result))//用myql_fetch_assoc函数取值,可以确保多行数据时能循环输出,mysql_fetch_array只能取得最前面的一行数据

6楼:匿名用户

select 商品名,商品**

from 商品表

order by 商品** desc

有个关于mysql排序的问题。降序排列一个字段后,如何查询某一特定字段的当前排名?

7楼:匿名用户

有个关于mysql排序的问题。降序排列一个字段后,如何查询某一特定字段的当前排名?

select identity(int,1,1) as px,* from 表 where 条件

那个 px 就是你要的排序

8楼:匿名用户

select identity(int,1,1) as px,* from 表 where 条件

那个 px 就是你要的排序

9楼:匿名用户

在sql语句中加临时变量,做排名顺序号字段。查该字段就知道了

mysql如何按照某个字段的一些列值组合排序

10楼:

ind_in_set方法:

select * from table find_in_set(字段名,'字段对应的值组合');

其中字段名,如果 table有别买 则字段名必须加上 别买.字段名其中字段对应的值组合,必须外边用单引号' '或者双引号" "包括,并且中间不得有任何空格。

如果该字段是个字符串类型,不是int类型,也不必要去特意加上如"'a','b','c','d'";不必要为a,b,c,d这

mysql不用联表查询,同时要求要分别按两个表中的某个字段排序。有什么好的实现方式了? 50

11楼:或者是

你好你要是两个表不关联,那么产生了笛卡尔积结果是不对的吧

或者我没理解你的意思

有问题追问吧

mysql !!!按照某个字段排序 该字段为空排到最后边

12楼:匿名用户

挖坟,答案写法没有语法、语义的问题,但是写的不够精简,不是正常的order写法。

指出两点问题:1)ifnull指成'',再与''比较,可直接写成 sortnum is null;

2)可以直接用结果为bool表达式进行排序(asc),false(0)在前,true在后。

sql为:

select *

from table

order by sortnum is null , sortnum

13楼:匿名用户

select *

from table

order by case when ifnull(sortnum,'')='' then 0 else 1 end desc, sortnum asc

试试,我没试,应该没问题

mysql中如何先查询出某个字段的条数,然后再根据这个条数大小进行排序,查询显示出该表中所有字段

14楼:寥若_晨星

select

count(distinctuser_id)user_count,

case

whenage<=10then'0-10'

whenage>10andage<=20then'10-20'

whenage>20andage<30then'10-30'

endas`age

from

tablename

groupbyage

orderbyagedesc

mysql 分组查询,再按照时间倒序取出第一条数据的某个字段值

15楼:司马铸剑

# mysql不支持其它复杂数据库的类似 rank() over 的排名和统计查询

# 只能通过变通的子查询和逻辑计算方式来实现,对于中小数据量可以考虑

-- rank 排名实现

select inline_rownum, aa, cc, amt, orderid from

(select

# logic_cal 只是实现计数器计算的,每次逐条查询时会对比当前 cc 与 @last_cc 是否相同,如果不同则把当前该列值赋于 @last_cc 并重设计数器 @num := 1,否则计数器自加 @num := @num + 1

(case when cc <> @last_cc then concat(@last_cc := cc, @num := 1 ) else concat(@last_cc, @num :

= @num + 1) end ) logic_cal

, @num as inline_rownum

, aa, cc, amt, orderid

from tb_rank,

( select @last_cc := '') t, # 初始化 @last_cc 为 '', 如要检查的列(基于计数器统计的列)是int型,则初始化为0; varchar型初始化为''

( select @num := 0 ) t2 # 初始化@num为0

order by cc, orderid asc # 排序的方式会影响@num的生成,因为logic_cal是逐行计算的

) twhere inline_rownum <= floor(amt*0.8) #限制条数,取常量值或其他

order by cc,orderid asc;

mysql查询时按照某个字段计算后的值排序

1楼 山水阿锐 先把分类全取出来,并随机排序,取排在第一个分类。 2楼 匿名用户 select 商品名称 商品原价 折扣率 商品原价 折扣率 as 折后价 from 表 order by 折后价 3楼 卫青芬仰卯 查询成功了,但是你没有把查询的值赋给变量,所以你肯定得不到值, sql select ...