2013-02-21 57 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