擅长:python、mysql、java
<p>你所要求的可能不是你所需要的。你可能不想只按第一个字母排序。如果艺术家第一次按字母排序的话,你也会按同样的字母排序。在</p>
<p><strong>更新答案</strong></p>
<p>你说过不允许你更改数据库。然后,您可以使用<a href="http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_trim" rel="nofollow noreferrer">^{<cd1>}</a>来删除不感兴趣的单词,但请注意,这会很慢,因为查询将无法对列使用索引。在</p>
<pre><code>SELECT *
FROM song
WHERE SUBSTRING(TRIM(LEADING 'The ' FROM TRIM(LEADING 'A ' FROM title)), 1, 1) = 'B'
ORDER BY TRIM(LEADING 'The ' FROM TRIM(LEADING 'A ' FROM title))
</code></pre>
<p>结果:</p>
^{pr2}$
<p>试验数据:</p>
<pre><code>CREATE TABLE song (title NVARCHAR(100) NOT NULL);
INSERT INTO song (title) VALUES
('The Bar'),
('Baz A'),
('Foo'),
('Qux'),
('A Quux');
</code></pre>
<hr/>
<p><strong>原始答案</strong></p>
<p>还要注意,如果您<code>ORDER BY</code>一个列的函数,当您有很多记录时,它将非常慢,因为该列上的索引无法使用。相反,您应该存储另一列,在其中删除所有不感兴趣的单词(the、an等…)并按该列排序。或者,当您在应用程序中插入一行时,您可以使用触发器从数据库中插入该行。在</p>