我正在嘗試爲我的應用程序創建一個查找腳本。當前的表結構如下所示:如何將分組的行數據轉換爲查找列?
id userid profile_field profile_value
-----------------------------------------------------
1 1 firstname John
2 1 lastname Smith
3 1 address 123 anywhere
4 1 city city
5 2 firstname Jane
6 2 lastname Smith
7 2 address 456 anywhere
8 2 city town
我正在嘗試編寫一個查詢,該查詢將允許我根據用戶輸入搜索用戶。
例如,我的管理員希望搜索姓名爲「smith」的用戶。在這個例子中,它會返回用戶標識1和2.
這是可能的與MySQL?到目前爲止,我已經研究了mysql的group_concat函數,但它似乎將所有內容放入字符串而不是列。因此,我無法生成適當的where子句進行搜索。
編輯:我必須道歉,我應該更清楚。
我還需要考慮有多個輸入。例如,搜索名字如「john」和姓氏如「smith」的用戶。在這個例子中,它只會返回用戶標識1.
這是我遇到麻煩的部分。再次抱歉!
閱讀有關在MySQL樞轉。 – 2012-02-11 14:26:14
您的設計未規範化。你永遠不會得到最佳的解決方案。 – 2012-02-11 14:35:29
你真的需要一個嚴肅的理由來建立一個像這樣的表結構,而不是像列表名,姓氏等那樣爲每個用戶設置一行。實體屬性值模型往往存在很多性能問題。 – piotrm 2012-02-11 14:38:05