相关疑难解决方法(0)

MySQL - 选择所有列WHERE一列是DISTINCT

如果问题看起来太基础,我很抱歉.
我已经浏览了整个互联网和StackOverflow以获得完整的解决方案,并没有找到任何我能理解的内容,也无法自己编写,所以不得不在这里问一下.

我有一个MySQL数据库.
它有一个名为"已发布"的表.
它有8列.

我需要输出这个结果:

SELECT DISTINCT link FROM posted WHERE ad='$key' ORDER BY day, month
Run Code Online (Sandbox Code Playgroud)

但我不仅需要"链接"列,还需要此行的其他列.
对于使用此查询返回的每一行,我还需要知道表中的"id","day"和"month"值等.

请告诉我应该阅读什么,或如何制作它.
请保持尽可能简单,因为我不是MySQL的专家.

编辑:我试过这个:

SELECT DISTINCT link,id,day,month FROM posted WHERE ad='$key' ORDER BY day, month
Run Code Online (Sandbox Code Playgroud)

它不起作用.它返回太多行.假设有10行具有相同的链接,但不同的日/月/ ID.这个脚本将返回全部10个,我只想要第一个(对于这个链接).

mysql sql

52
推荐指数
4
解决办法
14万
查看次数

SQL:查询的默认Order By是什么?

ORDER BY使用no时,查询的默认顺序是什么?

mysql

50
推荐指数
3
解决办法
4万
查看次数

oracle中select查询的默认行排序

在Oracle中,如果未指定"order by"子句,则select查询的行的缺省排序是什么.

是吗

  1. 插入行的顺序
  2. 根本没有默认排序
  3. 以上都不是.

oracle sql-order-by

42
推荐指数
3
解决办法
8万
查看次数

什么是"SELECT*FROM table_name;"的MySQL行顺序?

假设向MySQL数据库发出以下查询:

SELECT * FROM table_name;
Run Code Online (Sandbox Code Playgroud)

请注意,没有 ORDER BY给出任何条款.

我的问题是:

MySQL是否给出了结果集行的顺序保证?

更具体地说,我可以假设行将按插入顺序返回吗?这与行插入表中的顺序相同.

mysql select sql-order-by

17
推荐指数
3
解决办法
9961
查看次数

如何反转Mysql中的默认排序?

在Mysql中,当你执行一个select SQL语句时,如果你不包含一个排序子句,有一个默认排序,如何反转默认排序?刚添加DESC

mysql sql sorting sql-order-by

7
推荐指数
3
解决办法
7579
查看次数

如何使用特定值的订单

CREATE TABLE Countries(location varchar(255), country varchar(255))

INSERT INTO Countries(location, country)
               VALUES('Arkansas', 'US'),
                      ('Newyork', 'US'),
                      ('New Jersey', 'US'),
                      ('Tokyo', 'JP'),
                      ('Yokohama', 'JP'),
                      ('Chennai', 'IN'),
                      ('Delhi', 'IN'),
                      ('Sydney', 'AU'),
                      ('Melbourne', 'AU');
Run Code Online (Sandbox Code Playgroud)

我需要查询以下输出

 Location     |         Country
--------------------------------
  Arkansas                US
  Tokyo                   JP
  Chennai                 IN
  Sydney                  AU
  Newyork                 US
  Yokohama                JP
  Delhi                   IN
  Melbourne               AU
  New Jersey              US 
Run Code Online (Sandbox Code Playgroud)

mysql sql

6
推荐指数
1
解决办法
220
查看次数

TOP 1在sql查询中的含义是什么?

TOP 1在sql查询中的含义是什么?

SELECT TOP 1 RequestId 
FROM PublisherRequests
Run Code Online (Sandbox Code Playgroud)

sql-server

3
推荐指数
3
解决办法
2万
查看次数

从数据库中选择数据时的顺序是什么?

假设我有一张桌子:

CREATE TABLE [tab] (
    [name] varchar,
    [order_by] int
)
Run Code Online (Sandbox Code Playgroud)

表中有10行,所有行对order_by都有相同的值(假设它为0)

如果我然后发出以下SQL:

select * from [tab] order by [order_by]
Run Code Online (Sandbox Code Playgroud)

行的顺序是什么?在这种情况下,什么因素决定了行顺序?

sql sql-server

3
推荐指数
2
解决办法
195
查看次数

为什么SQL查询的结果不会按照我期望的顺序返回?

如果将项目插入表中,然后我编写一个查询,例如select * from table,为什么结果不符合我的预期?

mysql sql sql-server sqlite postgresql

2
推荐指数
1
解决办法
2700
查看次数

SQL中的自定义排序

我有一个SQL查询

SELECT column1,column2 
FROM table1 
WHERE column1 IN('q1','q2','q3') 
Run Code Online (Sandbox Code Playgroud)

结果显示在顺序中:

q1
q2
q3
Run Code Online (Sandbox Code Playgroud)

如果我将查询更改为

SELECT column1,column2 
FROM table1 
WHERE column1 IN('q3','q1','q2')
Run Code Online (Sandbox Code Playgroud)

订单仍然相同.

如何在sql语句中实现这种排序?

救命!!

谢谢

sql sql-order-by

1
推荐指数
1
解决办法
631
查看次数

Postgres row_number 返回任意排序顺序

我跑

SELECT * 
FROM 
    (SELECT 
         *, 
         ROW_NUMBER() OVER () AS n 
     FROM 
         {table_name}) t 
WHERE 
    n < 10000 
Run Code Online (Sandbox Code Playgroud)

在 Postgres 中。我注意到每次运行的结果都不同。

为了测试除了顺序之外内容是否不同,我对列进行了平均。结果很有趣:有主键的表的返回值是一致的,而另一个没有主键的表在每次运行中都不同。

具有PK的表的执行计划:

"Aggregate  (cost=139391585.22..139391585.23 rows=1 width=32)"
"  ->  WindowAgg  (cost=0.58..99288350.02 rows=3208258816 width=9090)"
"        Run Condition: (row_number() OVER (?) < 10000)"
"        ->  Index Only Scan using mea_vit_pi_4221ef4deeadcabf_ix on {table_name}  (cost=0.58..59185114.82 rows=3208258816 width=8)"
Run Code Online (Sandbox Code Playgroud)

没有pk的表的执行计划:

"Aggregate  (cost=83580303.64..83580303.65 rows=1 width=32)"
"  ->  WindowAgg  (cost=0.00..61837074.84 rows=1739458304 width=650)"
"        Run Condition: (row_number() OVER (?) < 10000)"
"        ->  Seq Scan on {table_2}  (cost=0.00..40093846.04 rows=1739458304 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

0
推荐指数
1
解决办法
84
查看次数

标签 统计

sql ×7

mysql ×6

sql-order-by ×4

sql-server ×3

postgresql ×2

oracle ×1

select ×1

sorting ×1

sqlite ×1