我試圖找到執行上是這樣看的表的條件查詢的最佳方式:條件選擇與MYSQL,性能問題
primaryKey question answer clientId 1 are you fine? yes Bob 2 are you fine? no Tom 3 what is your name Bob Bob 4 What is your name Tom Tom
我在這個表的主鍵選擇所有答案的問題「你的名字是什麼」,但只爲那些回答「是」,「你好」(即我想檢索3)
我已經嘗試子查詢中的where子句像這樣:
SELECT primaryKey FROM (`questionTable`) WHERE clientId IN( SELECT clientId FROM `questionTable` WHERE (question = "are you fine" AND answer = "yes") ) AND question = "What is your name"
這個查詢實際上從來沒有完成,它不會拋出任何錯誤,它只是永遠運行。
我發現的唯一解決方案涉及選擇使用clientId而不是主鍵,但這太慢了,我想找到一種方法來檢索一個查詢中的primaryKey。
你需要證明你的表(我猜你沒有任何除了你的主鍵)的索引。你應該有一個問題表,你有問題的問題,問題,例如1,「你好」和2,「你的名字是什麼」,然後在你的表中添加一個問號,並添加一個索引。 clientId相同。 – Solarflare