Assuming that you do not wish to modify the content of the table (and hence get slightly less efficient queries), the following should do the trick.
(If you do have the leisure of modifying the table, see the suggestions at the end of this answer)
SELECT Title
FROM myTable
WHERE (Title LIKE 'x%' OR Title LIKE 'THE x%')
-- AND Title NOT LIKE 'THE [^T]%'
ORDER BY Title
Notes:
- x designate the desired letter (example: LIKE 'A%' etc.)
- The "AND TITLE NOT LIKE" extra condition is only needed when "X" is the letter "T" (it is otherwise functionally redundant, but doesn't change the result)
- I'm unsure of the support of the the [^xyz]
(i.e. NOT characters x, y or z), so the [^T]
could be replaced by its positive equivalent say [A-RS-Z0-9]
.
Orada ("OF" "A", "AN", ...) dikkate diğer birkaç durak kelime vardır ama kitap veya film başlıkları için, bu "" düşünün sadece yaygın bir uygulamadır. Eğer diğer makaleleri ile anlaşma gerekiyorsa, mantık olarak uzatılabilir:
SELECT Title
FROM myTable
WHERE (Title LIKE 'x%'
OR Title LIKE 'THE x%'
OR Title LIKE 'A x%'
OR Title LIKE 'AN x%')
-- the following is only needed when "x" is either the letter T or A.
-- AND (Title NOT LIKE 'THE [^T]%'
-- AND Title NOT LIKE 'A [^A]%'
-- AND Title NOT LIKE 'AN [^A]%'
-- )
ORDER BY Title
Daha iyi çözümler vardır, if you can modify the table's contents strong>. Bunlardan bazıları ön-hesaplanması birini veya birkaç fazladan sütunlar (ve / bu, yeni kayıtları vb eklendiğinde korumak) anlamına.
- Örneğin ekstra sütun herhangi istenmeyen gelen gürültü-kelimenin elimden başlığını içeren "sort_column" yaklaşımı, bu yazı Cletus'un 'cevaba bakınız. OP ilk harfi arama sorunu filtreleme alanı olarak amacına ek olarak, bu sütunu da bir daha samimi / mantıklı bir şekilde sıralamak için kullanılabilir, ilk mektuba ilgisiz bir filtre tarafından üretilen başlıkları listeleri ve / veya başlık (her yıl bir arama demek) bir başlangıcı.
- Yukarıda bir varyasyonu sadece küçük bir sütun için yapım, "etkili" ilk harfini (istenmeyen gürültü geçmiş bir) saklamak için, ama az çok yönlü bir de.
- Başlığı sütun kendisi yabancı önde gelen gürültü-kelime (ler) parantez, dizenin sonuna taşınır sayede başlık, değiştirilmiş bir formu saklamak, güncellenebilir. Bu uygulama bibliyografik-tipi katalogları ile oldukça yaygındır.