比较3列,如果匹配

时间:2015-08-09 18:23:24

标签: php mysql sql

我正在尝试比较电子邮件,地址和预订。

我想要的是如果电子邮件地址=所选书籍会引发错误。

换句话说,如果所选书籍是先前选择的同一本书,则会抛出错误。那个人不能两次选择同一本书。那个人可以选择多本书而不是同一本书。

$sql = "SELECT * FROM thetable WHERE `emailaddress` = '{$emailaddress}' 
OR `mailaddress` = '{$mailaddress}' OR `bookselected` = '{$bookselected}' ";

我尝试了OR但是如果使用相同的电子邮件或地址,则无论是否选择了不同的书,都会抛出验证错误。验证表明您之前已输入。

我尝试了AND但是在使用它时由于某种原因它绕过了验证。

有人可以帮助这个sql语句吗?

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题,但如果您正在检查某人是否已经使用相同电子邮件地址 mailaddress 选择了某本书,那么您的查询应该是是:

$sql = "SELECT * FROM thetable WHERE `emailaddress` = '{$emailaddress}'
AND `mailaddress` = '{$mailaddress}' AND `bookselected` = '{$bookselected}' ";

请注意AND而不是OR

您可能没有提及的一件事是,您是否应该能够在邮件电子邮件之间的一个字段上检查,如果查询应该是:

$sql = "SELECT * FROM thetable WHERE 
(`emailaddress` = '{$emailaddress}' AND `bookselected` = '{$bookselected}')
OR
(`mailaddress` = '{$mailaddress}' AND `bookselected` = '{$bookselected}') ";