下面的解決方案將工作,如果只有名字被計算。
考慮數據:
sqlite> SELECT name FROM COMPANY;
Paul Allen
Mark
Monty Python
Luther Blissett
Monty Cantsin
對於第一次查詢:
sqlite> SELECT distinct substr(name,1,1) FROM COMPANY;
P
M
L
,後來換2個輸出試試下面的算法:
- ,如果你有1級字符的輸入,然後使用substr(name,2,1)
- 如果您有2個字符輸入,然後使用substr(名稱,3,1)
- ..一般:如果x是字符輸入的數量,y是預期的字符輸出的數量,請嘗試substr(name,x + 1, Y)
sqlite> SELECT distinct substr(name,2,1) FROM COMPANY where name like 'M%';
a
o
sqlite> SELECT distinct substr(name,3,1) FROM COMPANY where name like 'Ma%';
r
如果別人的話也需要考慮搜索,與子查詢代替表名,如下。
SELECT distinct substr(name,2,1) FROM
(
select name from company where name like 'A%' -- counts for first word
UNION
select name from company where name like '% A%' -- counts for words that start with space
);
請注意,上面的查詢將只返回第一個字的人物,雖然這場比賽是所有的話,將考慮名字爲源獲取字符。
如果對數據庫有不同的查詢,那很好。任何解決方案 – Francis
您確定,您的問題最好使用多個數據庫查詢解決?作爲替代方案,請考慮查詢數據庫一次並編寫提取信息的代碼。 –
使用[substr()](http://www.sqlite.org/lang_corefunc.html#substr)和[LIKE](http://www.sqlite.org/lang_expr.html#like)。 –