MySQL在order by子句之前删除空格

时间:2010-08-13 20:04:32

标签: php mysql zend-framework zend-db

我有一张满是“标题”的表格,我想通过标题订购。问题是他们中很多人在标题前都有空格。我正在考虑编写一个PHP脚本来解决所有问题(超级简单),但我很好奇我该怎么做:

SELECT * FROM products ORDER BY title

但同时修剪标题所以它不会在空白区域进行排序。全部在同一查询中而不更改数据。上帝,我希望我有意义。

所以我真的在寻找一个mysql解决方案。为了它的价值我使用Zend_Db所以使用它的解决方案会更好但我可以直接管理MySQL。

3 个答案:

答案 0 :(得分:10)

您可以使用TRIM功能:

SELECT TRIM(title) as title, field2, field3 FROM products ORDER BY TRIM(title)

应该这样做!

答案 1 :(得分:3)

我会自己回答,因为我的问题的确切解决方案是:

SELECT * FROM products ORDER BY TRIM(title)

我仍然会接受codykrieger的回答,因为他做到了,所以我找到了解决方案。

以下是Zend_Db答案:

$products->fetchAll($products->select()->order('TRIM(title) ASC'));

答案 2 :(得分:2)

纯SQL查询看起来像这样:

  

更新产品SET title = TRIM(标题)