如何进行简单的“OR”查询?

时间:2012-05-20 01:08:30

标签: php sql search

我想通过添加“OR”语句来进行查询。使用我在下面的内容不会显示所有条目。我做错了什么?

//$q = search variable;

$sql = "SELECT name, id_code from codes WHERE (id_code = '$q') OR (name='$q')";

4 个答案:

答案 0 :(得分:3)

$sql = "SELECT name, id_code from codes WHERE (id_code = '$q') OR (name='$q')";
$sql = "SELECT name, id_code from codes WHERE (id_code = '$q' OR name='$q')";
$sql = "SELECT name, id_code from codes WHERE id_code = '$q' OR name='$q'";

所有这些都会产生相同的结果。

答案 1 :(得分:1)

您是否尝试过SELECT name, id_code from codes WHERE id_code = '$q' OR name='$q'(即没有括号)?

答案 2 :(得分:1)

此代码是正确的。它不起作用的原因是因为在大海捞针中没有找到针头。

答案 3 :(得分:0)

这可能是因为id_code列是一个数字列,或列的值是零填充或变量未传递给查询。

通过回显查询检查变量以查看它们是否被传递,并查看字段的数据类型。

如果某个字段是数字字段,则可以在不使用引号的情况下对其进行分配或比较。

此外,如果您要搜索name列的部分内容,则必须将=运算符更改为like运算符:

$sql = "SELECT name, id_code from codes WHERE (id_code = '$q') OR (name like '%$q%')";

%表示任何内容(零个或多个字符),因此查询将查找以任何内容开头的任何名称,然后搜索therm,然后以任何结尾。