私は、FMDB を使用して、英数字 (アルファベットが最初、数字が 2 番目) で並べ替える必要があるタイトルの書籍のリストを保存する iOS アプリに取り組んでいます。ただし、アスタリスクや括弧などの英数字以外の先頭文字も無視する必要があります。「The」も無視する必要があります。さらに、この並べ替えられたデータはインデックス付きの UITableView に表示されるため、各セクションに入る主要な文字と本のタイトルの数のリストを取得できる必要があります。
例-
これは本のタイトルのリストです:
"A Title 1", "A Title 2", "The A Title 3", "B Title 1", "B Title 2", "B Title 3",
"*B Title 4", "C Title 1", "(The) C Title 2", "3 Title 1"
このリストから、タイトルを入れるために 4 つのセクションを数えます (「A」、「B」、「C」、「3」)。また、各セクションに入る本の数も数えます (「A」-3 本、「B」-4 本、「C」-2 本、「3」-1 本)。このチュートリアルを使用して、セクションとインデックス作成を設定できましたが、「The A Title 3」、「*B Title 4」、および「(The) C Title 2」などのタイトルの処理に問題があります。
現在、これは私が使用しているステートメントです:
SELECT DISTINCT UPPER(SUBSTR(BookTitle, 1, 1)) AS Section,
COUNT(BookTitle) AS SectionCount
FROM BookTable
GROUP BY Section ORDER BY IFNULL(Section + 1, 0), Section
これは、英数字順にソートされたセクションのリストと、各セクションに入る本の数を返します。問題は、私の 'T' セクションに含まれる本が多すぎるということです。言うまでもなく、これらを無視したいときに < または * などの特殊文字のセクションを取得しています。英数字以外の文字と「 The 」の出現を削除する必要があると考えていますが、現在のようにクエリに統合する方法がわかりません。
これが十分に詳細であることを願っています。どんなことでもお気軽にご相談ください。いつもありがとうございます。