如果问题看起来太基础,我很抱歉.
我已经浏览了整个互联网和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个,我只想要第一个(对于这个链接).
在Oracle中,如果未指定"order by"子句,则select查询的行的缺省排序是什么.
是吗
假设向MySQL数据库发出以下查询:
SELECT * FROM table_name;
Run Code Online (Sandbox Code Playgroud)
请注意,没有 ORDER BY给出任何条款.
我的问题是:
MySQL是否给出了结果集行的顺序保证?
更具体地说,我可以假设行将按插入顺序返回吗?这与行插入表中的顺序相同.
在Mysql中,当你执行一个select SQL语句时,如果你不包含一个排序子句,有一个默认排序,如何反转默认排序?刚添加DESC?
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) TOP 1在sql查询中的含义是什么?
SELECT TOP 1 RequestId
FROM PublisherRequests
Run Code Online (Sandbox Code Playgroud) 假设我有一张桌子:
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)
行的顺序是什么?在这种情况下,什么因素决定了行顺序?
如果将项目插入表中,然后我编写一个查询,例如select * from table,为什么结果不符合我的预期?
我有一个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语句中实现这种排序?
救命!!
谢谢
我跑
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 ×7
mysql ×6
sql-order-by ×4
sql-server ×3
postgresql ×2
oracle ×1
select ×1
sorting ×1
sqlite ×1