我在用戶表中存儲了「firstname」和「lastname」。在SQL查詢中查找兩列中唯一的第一個字母
我試圖建立一個字母A-Z列表,並知道每個字母是否至少有一個用戶的第一個字母是以該字母開頭。例如,查詢的理想輸出只是A,B,C,D,E,I,O,U,但很高興發佈過程。
我能做到這一點很容易夠上一列:
SELECT COUNT(*), LEFT(firstname, 1) FROM users GROUP BY LEFT(firstname, 1)
但是這只是一個欄,我想這樣做對兩列。另外,如果有更高效的方式來做到這一點 - 我很想知道。
非常感謝;我明白這是如何工作的。我的理想解決方案是避免子查詢,因爲這不會針對索引運行;但如果這是不可能的 - 這將做到這一點。 – 2012-03-13 12:47:57
能在MySQL中做基於函數的索引嗎?如果是這樣的話,在這種情況下可能是值得的。如果不是,那麼添加一個僅存儲第一個初始值的列並通過觸發器更新值可能是值得的。 – 2012-03-13 13:35:42