2013-02-21 27 views
-2

我需要能夠查明由兩個變量定義的MySQL表中的值。MySQL查詢以確定基於3個變量的值

在網站的前端,有一種接受各種領域的表格。在這個例子中,讓我們專注於這兩個:

1)帳號

2)賬戶名稱

我開發了一個腳本,將使用AJAX腳本來檢查「帳號」輸入一次密碼,如果它發現一個匹配將顯示「帳戶名稱」,當用戶退出該字段。

難點在於從數據庫表的格式中找到單個結果。例如:

」SELECT * FROM example_table WHERE name=’$accountnumber’」

提供一切等於賬號的值的列表,但不提供的帳戶名稱的任何記錄。

」SELECT * FROM example_table WHERE name=’$accountname’」

提供一切等於帳戶名稱值的列表,但不提供賬號的任何記錄。

$record值是$accountnumber$accountname之間唯一的共同線程。

所以總而言之,我需要幫助創建循環,可以首先使用$accountnumber值查找與該數字關聯的$record值。其次,它將採用確定的$record值並將其與$accountname值相匹配。每個唯一$record值只有一個$accountnumber$accountname值。


更新:在這個問題上有好幾個好評。爲了幫助提供更多背景,只有一個表格。可用的最佳鑑別器似乎是title的值。這裏是一個鏈接到表片斷,以查看更詳細:

https://docs.google.com/file/d/0By2lFlhEzILjbE1uT1hkVURmczA/edit?usp=sharing

所以,最後在此示例中,用戶將鍵入246802和被過濾掉。將Fred’s Account結果。再次感謝。

+2

閱讀有關聯接。如果你花一點時間學習sql的基礎知識,那麼你的問題有一個非常簡單的答案。 – Colleen 2013-02-21 22:24:34

+0

@Colleen我認爲他可能會提出一些稍微複雜的問題 - 但這個問題需要確定的工作。 – Matthew 2013-02-21 23:51:41

+0

@Matthew是的,我認爲相同的表名是字面意義上的錯字或暗示了2個不同的表格。 – Colleen 2013-02-22 00:24:40

回答

1

這些聲音在同一張表中?有沒有任何鑑別者可以告訴你name是否擁有accountnumberaccountname

在任何均勻,具有以下假設你可以嘗試一個醜陋的自聯接:

  1. 只有兩個記錄與要
  2. 這些都是在同一個表的多個列持不同的記錄ID在不明確的列名信息
  3. 有沒有更好的辦法來區分記錄類型

如果是這樣,像這樣自聯接應該讓你starte d:

SELECT t2.name as accountnumber from example_table as t1 
INNER JOIN example_table as t2 on t1.recordID=t2.recordID 
WHERE t1.name='$accountname' 

編輯注意 - 如果我的假設是正確的,如果是這樣的數據,你是繼承,我對你的感覺,你應該看看,以提高它的結構。如果你是這樣設計的,你可能想先考慮一下。

EDIT 2

你可能想要把一個索引的列name(這是我使用了基於你的榜樣鑑別)。

你的查詢可以是這樣的:

SELECT t1.value as accountnumber,t2.value as accountName from example_table as t1 
INNER JOIN example_table as t2 on t1.record=t2.record 
WHERE t1.name='accountNumber' and t2.name='accountName' 

看到這個SQL小提琴:http://www.sqlfiddle.com/#!2/97c2f/1

+0

你是正確的,這些項目都在同一個表中。感謝您的徹底答覆。我將對你的答案做一些研究,並學習更多關於'JOIN'和'INNER JOIN'的知識,然後再更新。 – Presto 2013-02-22 14:58:54

+0

您上面詢問過: 有沒有任何辨別器可以告訴您名稱是否包含賬號或賬號? 是的,最好的鑑別器似乎是'title'值。以下是表格片段的鏈接,以便更詳細地查看: https://docs.google.com/file/d/0By2lFlhEzILjbE1uT1hkVURmczA/edit?usp=sharing 因此,最終在此示例中,用戶會鍵入' 246802',結果被篩選出來就是'Fred's Account'。再次感謝。 – Presto 2013-02-22 15:16:07

+0

另一個說明,我正在從一個Web應用程序的預定義表結構中工作。客戶要求在提供的結構內工作,所以我避免任何表格重新設計。 – Presto 2013-02-22 15:24:41