我需要为该nvarchar
列排序。问题是该列没有相同的条目模式,该列的某些行的示例是
12
9
TEF
78F
T2R
Run Code Online (Sandbox Code Playgroud)
如何按 order By 子句对此列进行排序?我唯一感到宽慰的是,该列仅包含数字和字母数字字符。
这个函数似乎可以很好地根据ID对div进行排序:
JS
var div = $("<div id='3.5'>AA</div>");
div_id_after = Math.floor(parseFloat(div.get(0).id));
$('#'+div_id_after).after(div);
Run Code Online (Sandbox Code Playgroud)
HTML
<div id='1'>a</div>
<div id='2'>b</div>
<div id='3'>c</div>
<div id='4'>d</div>
<div id='5'>e</div>
Run Code Online (Sandbox Code Playgroud)
生产:
a
b
c
AA
d
e
但是如果我想使用名为"order"的自定义属性呢?
该ID不应该是兼容性问题的数字,但同样的规则是否适用于自定义属性?
我有这样的表数据:
id,time,otherdata
a,1,fsdfas
a,2,fasdfag
a,3,fasdfas
a,7,asfdsaf
b,8,fasdf
a,8,asdfasd
a,9,afsadfa
b,10,fasdf
...
Run Code Online (Sandbox Code Playgroud)
所以本质上,我可以通过说以下内容按我想要的顺序选择所有数据:
select * from mytable ordered by id,time;
Run Code Online (Sandbox Code Playgroud)
所以我按照我想要的顺序获取所有记录,首先按 id 排序,然后按时间排序。但不是获取所有记录,我需要每个 id 的最新 3 次。
回答:
嗯,我想出了怎么做。我很惊讶它的速度有多快,因为我正在处理几百万行数据,大约需要 11 秒。我在 sql 脚本中编写了一个程序来执行此操作,这就是它的样子。-- 请注意,它不是获取最后 3 行,而是获取最后“n”行数据。
use my_database;
drop procedure if exists getLastN;
drop table if exists lastN;
-- Create a procedure that gets the last three records for each id
delimiter //
create procedure getLastN(n int)
begin
# Declare cursor for data iterations, and variables for storage
declare idData varchar(32); …
Run Code Online (Sandbox Code Playgroud) 我在MYSql数据库上运行此查询:
select * from wp_postmeta
where meta_key LIKE "%_thumbnail_id"
and post_id = 897
Run Code Online (Sandbox Code Playgroud)
它返回此数据集:
Picture.png http://img713.imageshack.us/img713/9065/picturezo.png
我meta_key
该如何订购,_thumbnail_id
先来dogs_image-2_thumbnail_id
,然后dogs_image-3_thumbnail_id
呢?
如果我只是order by meta_key asc
按顺序使用编号的图像,但是_thumbnail_id
显示在底部而不是顶部.
请设置一个包含一些值的字段值(类型文本)(文本以及一些int或float值).
所以我想通过字段值只选择浮点数和整数值以及订单主题.
目前我可以单独获得浮点数,但问题是结果我得到的主题是以文本格式排序而不是浮点数或整数格式(我猜是正常的).示例:
33
33358
80
88000
90
99
Run Code Online (Sandbox Code Playgroud)
请高手,我怎么能告诉我的查询将结果视为浮点数而不是文本,而是得到这个结果:
33
80
90
99
33358
88000
Run Code Online (Sandbox Code Playgroud)
提前致谢
我不清楚以下内容:
假设我有一个表A
,我已经在列上创建了一个索引X
.
如果我根据列进行选择,结果将被排序,对吧?
但是,如果由于某种原因我做了一个选择后跟一个ORDER BY X
(例如我不知道列被索引),SQL服务器会执行排序执行顺序访问还是会去使用索引?
我想为以下问题提供一些帮助,谢谢.
原表:
id, mark
1, 3
2, 4
3, 5
4, 10
5, 14
Run Code Online (Sandbox Code Playgroud)
结果表
id, mark
1, 36
2, 33
3, 29
4, 24
5, 14
Run Code Online (Sandbox Code Playgroud)
如何使用sql从原始表中获取结果表?我注意到结果表中的标记字段是其他的总和,但不知道如何实现它.
我需要foreach
按订单显示这个,我该Asc
怎么做?
<tr th:each="ment : ${mentor}" th:if="${ment.jobId == job.id}">
<td th:text="${ment.id}"></td>
<td th:text="${ment.name}"></td>
<td th:text="${ment.qtyMentee}"></td>
<td th:text="${ment.jobId}"></td>
</tr>
Run Code Online (Sandbox Code Playgroud) 我有一个包含Display_UPC,Brand,Item_Description和其他字段的表.有几个具有相同Display_UPC的项目(所有项目属于同一显示器),并且一些显示器具有多个品牌.
我正在尝试打印一个页面,其中显示所有显示内容(所有Display_UPC一起)和各种项目描述,但按品牌排序(因此它从页面顶部的"A"品牌开始,然后" B"品牌等......).
问题是,如果我尝试:
SELECT DISTINCT *
FROM tbl_All_Displays
ORDER BY Brand, Display_UPC
Run Code Online (Sandbox Code Playgroud)
一些显示器(包含多个品牌的显示器)缺少一些物品,因为它们是不同的品牌.我可以在ORDER BY中删除"Brand",它会一起返回完整的显示,但它们不按品牌(显然)排序.
我猜这里可能需要GROUP BY,但是我无法让它工作.如果我尝试类似的东西:
SELECT DISTINCT *
FROM tbl_All_Displays
GROUP BY Display_UPC
ORDER BY Brand, Display_UPC
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Column 'tbl_All_Displays.Item_Description' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Run Code Online (Sandbox Code Playgroud)
但我需要在页面上显示Item_Description(和其他各种字段).它们在订购/分组中并不重要.
样本数据:
预期结果样本:
因此,基本上,查询在排序中使用的显示中的哪个品牌无关紧要.如果一个展示包含一个品牌,那么它可以属于该品牌"团体",如果这是有道理的.这可能吗?
注意:我删除并重新发布了一个普遍的问题,因为它编辑混乱.
编辑:这是sqlfiddle与示例表数据 - http://sqlfiddle.com/#!6/5069c
我有一张这样的表:
// mytable
+----+---------+-------------------------------+
| id | title | content |
+----+---------+-------------------------------+
| 1 | hello | how are you? |
| 2 | you | it is content2 |
| 3 | what | hello is a word for greating |
| 4 | mouse | it is content4 |
+----+---------+-------------------------------+
Run Code Online (Sandbox Code Playgroud)
好吧,我想优先考虑title
比content
. 我的意思是,我想显示title
列(第一个)的所有结果,然后显示content
列(第二个)的所有结果。这里也是我的查询:
select * from mytable where match(title, content) against($word);
Run Code Online (Sandbox Code Playgroud)
这里还有两个例子:
示例 1:
$word = 'you';
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:(专注于排序)
+----+---------+-------------------------------+
| id …
Run Code Online (Sandbox Code Playgroud) sql-order-by ×10
mysql ×4
sql ×3
sql-server ×3
database ×1
group-by ×1
html ×1
indexing ×1
javascript ×1
jquery ×1
limit ×1
nvarchar ×1
performance ×1
php ×1
sorting ×1
thymeleaf ×1