【问题标题】:Alphabetically sort MYSQL result by letter ignoring the prefix 'The '按字母顺序对 MYSQL 结果进行排序,忽略前缀“The”
【发布时间】:2016-05-01 08:43:44
【问题描述】:

我可以对整个 A-Z 进行排序,它工作正常,但如果我尝试只按 1 个字母排序,它就行不通..

例如:

"SELECT *,TRIM(LEADING 'the ' FROM LOWER(title)) AS title_x FROM table ORDER BY title_x ASC"

这工作正常,并排序/获取结果 A-Z 不考虑“The”.. 但是:

"SELECT *,TRIM(LEADING 'the ' FROM LOWER(title)) AS title_x FROM table WHERE title_x LIKE 'A%' ORDER BY title_x ASC"

不起作用,它只是说“'where 子句'中的未知列'title_x'”

谁能帮我纠正这个问题?谢谢。

更新

对于遇到此问题的其他人,更改 HAVING 的 WHERE 可以完美地完成这项工作。

【问题讨论】:

  • 如果列本身不存在,则不能在 WHERE 子句中使用列(作为别名)。
  • 那么我该如何实现呢?
  • WHERE title LIKE 或任何实际存在的列
  • 但这不会忽略'The '会吗?
  • 你已经得到了答案,试试吧

标签: php mysql sorting


【解决方案1】:

我认为不可能在 where 子句中使用别名。您可以使用子查询或嵌套查询来解决此问题。

【讨论】:

  • 那是在cmets中建立的。你有任何代码来支持这个吗?您的问题现在质量低下,实际上更像是评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多