2

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

//$q = search variable;

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

4 回答 4

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'";

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

于 2012-05-20T01:23:15.890 回答
1

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

于 2012-05-20T01:12:17.050 回答
1

这段代码是正确的。它之所以不起作用,是因为大海捞针还没有找到。

于 2012-05-20T01:14:19.103 回答
0

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

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

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

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

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

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

于 2012-05-20T01:25:10.323 回答