Sql:"其中"和"和"

时间:2017-08-27 23:28:15

标签: mysql sql mysqli

我想进行搜索,您可以将用户名的电子邮件发送给您,它会为您提供结果。 但由于某种原因,它不起作用......

我认为这是错误的:

<!DOCTYPE html>
<html>
<body>

Name: <input type="text" id="myText" value="tch">

<p>Click the button to change the value of the text field.</p>

<button onclick="confirmExistence('0')">Try it</button>

<script>
    function confirmExistence(entityValue) {
        alert(entityValue);
        document.getElementById("myText").value = "whatswrong?";
    }
</script>

</body>
</html>

修改 完整的查询是:

$w_search = "WHERE u.user_name LIKE '%$q%' AND u.user_email LIKE '%$q%'";
你可以帮帮我吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

你的问题是你在where子句中有两个条件可能使它“无法正常工作”,看你有:

WHERE u.user_name LIKE '%$q%' AND u.user_email LIKE '%$q%'

这意味着您要查找的用户需要在其名称($q AND <的PART(like所用内容)user_name中使用$q / strong>同时部分电子邮件。所以,如果你有一个人,他的名字是巴特,他的电子邮件是simpsom@whatever.com你的查询永远不会返回它,因为一个过滤器将返回true而另一个过滤器返回false。

正确的方法是使用 OR 运算符取决于WHERE u.user_name LIKE '%$q%' OR u.user_email LIKE '%$q%' 是什么或两者都是这样:

WHERE u.user_name = '$q'

但是,如果这是某种测试,如果名称或电子邮件与您需要的数据库完全相同:

WHERE u.user_email = '$q'

OR

exit = false
while (!exit) {
  promptUser()
  int value = readOption()
  switch(value) {
     case 1:
       doThing1();
       break;
     case 2:
       doThing2();
       break;
     case 3:
       exit = true;
       break;
  }
}