我按字母顺序对数据进行排序,尽管我希望忽略以"the"开头的条目按第一个单词排序,而是按第二个单词排序。
例如,"视图"将列在 V 而不是 T 下,最好的方法是什么?
我知道有一件简单的小事我可以做,就像我过去做的那样,但不能在我一生中记住。谢谢。
要按照您指定的顺序从 MySQL 获取结果集,您可以使用:
ORDER BY TRIM(LEADING 'The ' FROM entry)
这将删除多次出现,因此例如"The Now"将返回为"Now"。此外,它只会拉掉单词"The"后面的单个空格。
这可能区分大小写。
尝试:
SELECT COLUMN FROM TABLE ORDER BY TRIM(LEADING 'The ' FROM COLUMN);
您可以使用自己的比较函数,这样如果索引以"The"开头,php 就会采用第二个单词:
function cmp($a, $b) {
$a = preg_replace("/^the /i","",$a);
$b = preg_replace("/^the /i","",$b);
return strcmp($a,$b);
}
和排序:
$array = array("The Vektor", "Apple", "The Anchor", "Bee");
usort($array, 'cmp');
print_r($array);
我认为这应该有效.. ;) .. 此外,它不会从文本中删除"The",因为比较的变量只是局部:)
输出:
Array ( [0] => The Anchor [1] => Apple [2] => Bee [3] => The Vektor )