mysql中使用的空php变量选择所有行

yvfmudvl  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(375)

我有这个变量 $search=''; 它存储在搜索栏中键入的单词和一个空的默认值。然后执行如下查询:

$result=$conn->query("SELECT * FROM users WHERE name LIKE '%".$search."%'");

但是当$search变量为空时,此查询将返回所有行。我希望它在为空时显示“0”行结果。
这可能毫无意义,但我不能使用这样的方法:

if(!empty($search)){
       $result=$conn->query("SELECT * FROM users WHERE name LIKE '%".$search."%'");
}

我需要一个执行相同查询的方法,不管 $search 是。还有别的方法吗?

polkgigr

polkgigr1#

如果搜索变量为空,则发送空数组。

if(!empty($search)){
       $result=$conn->query("SELECT * FROM users WHERE name LIKE '%".$search."%'");
}
else {
      $result = [];
}
7gcisfzg

7gcisfzg2#

也许在where查询中使用if可以帮助您:

$result=$conn->query("SELECT * FROM users WHERE name LIKE IF ( '%".$search."%' = '%%', '', '%".$search."%')");

如果搜索字符串为空,则只返回表中的空名称;假设表中没有空名称,则返回零结果。

mctunoxg

mctunoxg3#

如果更改查询,它将返回0行,如果 $search 是空的。

$result=$conn->query("SELECT * FROM users WHERE name LIKE '%".$search."%' AND '".$search."' != ''");

相关问题