【问题标题】:MYSQL ordering by matches not workingMYSQL按匹配排序不起作用
【发布时间】:2016-01-06 03:18:31
【问题描述】:

我正在尝试按火柴排序,但我无法这样做。我做错了什么?

SELECT * , (( image LIKE  '%one%' ) + ( image LIKE  '%two%' )) 
AS matches
FROM images
ORDER BY matches
LIMIT 10

【问题讨论】:

  • 您遇到了什么问题?查询看起来正确。
  • @GordonLinoff 匹配的不是列名。
  • 。 .它是一个别名,别名在ORDER BY 子句中被识别。
  • @frosty 您能否发布错误或进一步解释您的问题的性质。 “不工作”提供的帮助解决问题的细节很少。

标签: mysql database select


【解决方案1】:

我的猜测是你想要matches DESC 中的ORDER BY

SELECT i.*,
       (( image LIKE  '%one%' ) + ( image LIKE  '%two%' ))  as matches
FROM images i
ORDER BY matches DESC
LIMIT 10;

【讨论】:

  • 之所以有效,是因为 false 为 0,小于 true(即 1)。所以 desc 把真正的结果放在答案的首位。
猜你喜欢
  • 2011-08-04
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
相关资源
最近更新 更多