【SQL的排序,分组,统计常用语句】教程文章相关的互联网学习教程文章

mysql – 排序和分页【代码】

我在我的数据库mysql中有一千条记录,我使用分页来检索10个结果. 当我在我的查询中添加订单时,它会减慢但是当我省略它时,查询运行得非常快. 我知道问题来自查询加载整个结果,对它们进行排序,然后它获得10条记录. 我不使用索引,因为订单的列使用是PK,我认为如果我在mysql中没有错,则会在每个主键上自动创建索引 >为什么我的PK上的索引是我订购的列.不曾用过 ?>有没有其他替代方案可以在不加载所有数据的情况下执行排序?>如何在表的...

在使用排序结果集加入表时,mySql的不同行为与Ms-Sql和Oracle相比【代码】

存在以下2个表: T1:--------------- | Id | Name |--------------- | 1 | One | | 2 | Two | | 3 | Three |---------------T2:---------------------- | Id | Name | T1Id |---------------------- | 6 | X | 3 | | 7 | Y | 2 | | 8 | Z | 1 |----------------------表1(T1)具有值为1,2和3的主键列“Id”.表2(T2)具有与T1表相关的主键列“Id”和“T1Id”外键列.我正在...

如何选择在一个字段中具有不同值并在MySQL中按另一个字段排序的行?【代码】

我有这样一张桌子:----------------------------- id | uid | year | other | many | fields ----------------------------- 1 | 1 | 2010 | blabla ... 2 | 2 | 1999 | blablabla ... 3 | 3 | 2011 | bla ... 4 | 1 | 2006 | blablablabla ... ... -----------------------------我想要的是选择所有记录中的所有字段 >具有不同的uid并且仅返回最后一条记录(即,具有最高id)>结果按年份排序 返回记录的示例如:-------...

mysql – “SELECT * FROM view_table WHERE cause”=>但结果总是重新排序【代码】

在SELECT * FROM view_table中结果始终为----------------------- || id || author || ----------------------- || 1 || a || <-- || 1 || c || <-- || 1 || b || <-- || 2 || d || || 3 || e ||但是当SELECT * FROM view_table WHERE id = 1时,结果是----------------------- || id || author || ----------------------- || 1 || a || || 1 || ...

php – mySQL排序最后一个下划线【代码】

我的表中有一列存储字符串(它是文本列): VARCHAR(16)latin1_swedish_ci 问题是,当我说“ORDER BY name ASC”时,它会返回以结尾的下划线开头的单词.这是它返回的一个例子:-a -mmddd2 -z -z3 aaa b c t _a ___-我打赌我可以使用php进行排序,但是有一种简单的方法可以让mySQL在破折号后加上下划线吗?我这样做,所以它将匹配javascript排序函数的输出. 我想要:-a -mmddd2 -z -z3 _a ___- aaa b c t解决方法:Collations定义排序顺序,...

mysql – 在单元测试中使用created_at进行排序,并在rails中生成数据【代码】

我有一些代码基本上显示了给定表中的最后一个x(变量,但是假设x在这里是20).在其中一个单元测试中,我有这个片段:EditedItem.push_to_queue(hiddennow) #create some new entries and save them 20.times{ EditedItem.push_to_queue(random_item) } Queue.get_entries.each{|entry| assert_not_equal too_far_down, entry}可能是也可能不是很漂亮,但它有意图. hiddennow对象已在队列中被推下太远,并且在调用get_entries时不应再返回...

根据另一个表中的行数对mysql表进行排序【代码】

我正在尝试根据他们在辅助注释表中链接到多少注释来对用户表进行排序,我认为子选择将是最好的工具,但我无法正确使用语法. 用户表testdata:id | user_id 1 | 1000 2 | 1001 3 | 1002评论表testdataid | link_id 1 | 1002 2 | 1000 3 | 1002 4 | 1000 5 | 1002 6 | 1001 7 | 1000 8 | 1002第一个表中的预期排序结果将是:id | user_id 3 | 1002 1 | 1000 2 | 1001任何正确方向的推动都会非常有帮助,谢谢! =)解决方法...

mysql – 当我的整个应用程序用于UTF-8时,我应该使用哪种排序规则?

我正在使用MySQL,最新版本.默认情况下,我得到latin1_swedish_ci听起来不太正确.解决方法:你应该使用utf8_general_ci 这是来自MySQL参考站点的a full list of the character sets and their descriptions.

php – MySQL – 按字符数排序【代码】

我有最简单的SQLSELECT * FROM words它有13000个单词(varchar).我需要在输出中首先获得最长的单词.我想用WHERE命令可能有可能吗? 替代 如果它不能那样工作,是否有一种智能的方法来对我的输出数组进行排序,这样它就会按照最长的单词排序(在’word’-column中).它看起来像这样(在输出循环中)?$output_array[$row['word']] = $row['another_word'];解决方法:按其长度排序单词应该这样做:SELECT * FROM words ORDER BY LENGTH(word)...

按“最相关”排序结果 – MYSQL和PHP

我以前从未真正考虑过这个问题,并且想知道是否有人对实现“相关结果”的最佳实践有任何建议或意见. 在我的情况下,我正在运行一个搜索查询,其中包括5个字段的全文搜索,地理径向查找和一些基本比较. 我可以优先考虑我对这个例子最感兴趣的字段. 在寻找关键字X. >按地理查找过滤结果.>如果在“基本比较”中找到关键字,则应首先显示这些结果.>如果在“完整关键字搜索”中找到关键字,请按照结果操作. 最好的路线是采用PHP结果数组,将其转...

左连接,排序,MySQL优化【代码】

我有这样的查询:SELECT m...., a...., r....FROM 0_member AS m LEFT JOIN 0_area AS a ON a.user_id = (SELECT user_id FROM `0_area` WHERE user_id = m.id ORDER BY sec_id ASC LIMIT 1) LEFT JOIN 0_rank as r ON a.rank_id = r.id WHERE m.login_userid = '$username'我们的想法是从0_area表中获取第一行,从而获得内部连接.但是,它没有按预期工作. 在0_area和0_member之间,0_member.id = 0_area.user_id.但...

php – MYSQL排序函数,取决于使用数据库字段值作为数组键的算术运算【代码】

我有产品表,有2个字段:价格,货币.货币字段中的可能值为1,2,3. 1表示MDL,2表示USD,3表示EUR.我必须以mdl货币的价格对我的产品进行分类.所以我有一个费率数组: $v = array(1,11.38,15.8); 用我的查询帮助我,我尝试过类似的东西,但我有错误:$results = $this->Product->query("SELECT `id`,`price`,`currency` FROM products ORDER BY price*$v[currency] DESC");嗯……我会试着通过一个例子来解释. 我的桌子:id|price|currency _...

mysql – 排序依据,在保持升序搜索顺序的同时将0放在最后【代码】

我有一个使用ORDER BY ASC的查询,因此0首先出现.我希望他们能够在保持升序搜索顺序的同时达到最后.我怎样才能做到这一点? 一个例子是:SELECT product_price ORDER BY product_price ASC而不是0 1 2 3我想要1 2 3 0解决方法:我没有MySQL进行测试,但这适用于SQL Server和Advantage Database Server:SELECT product_price ORDER BY CASE product_price WHEN 0 then 99999999 ELSE product_price END将99999999系列替换为product_p...

如何在mysql中按时间戳排序?【代码】

SELECT * FROM table ORDER BY timestamp;当我试图通过其时间戳订购记录时,我得到以下订单08/20/2012 02:09:39 PM 08/20/2012 03:19:08 PM 08/20/2012 09:04:24 AM 08/20/2012 09:05:25 AM如何更改查询以便从AM到PM订购记录?解决方法:问题是您的时间戳的字符串表示形式不是规范格式,也就是说,排序字符串值不按时间戳顺序排序. 要按顺序排序行,可以将值的字符表示形式转换为DATETIME或TIMESTAMP数据类型,或者至少转换为规范格式的字...

mysql – 按大多数完成的行排序【代码】

我正在使用mysql db的排序语法,我想通过完成列对行进行排序.我希望示例能够描述这个问题:id |t1 | t2 | t3 | t4 ----------------------1 | a | b | c | d2 | | e | |3 | f | g | |4 | h | i | j |这是我的行/列结构.如您所见,某些字段为空.我想对桌子进行排序,因此输入看起来像这样id |t1 | t2 | t3 | t4 ----------------------1 | a | b | c | d4 | h | i | j |3 | f | g | |2 | | e | |它已按填充...

分组 - 相关标签