在php中使用多个“OR”语句减少查询

时间:2017-07-28 22:14:58

标签: php mysql

我在php中查询了以下术语:

.
.
elseif ($row['date_starb'] == 0 AND $row['priv_handy'] AND (substr($row['priv_handy'], 0, 4) == '+420' OR substr($row['priv_handy'], 0, 4) == '+421' OR substr($row['priv_handy'], 0, 4) == '+357' OR substr($row['priv_handy'], 0, 4) == '+386'))
.
.

此查询有效,但问题是,是否可以更容易编写。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

您可以使用in_array()来匹配字符串列表:

$haysack = ['+420','+421','+357','+386'];
$needle = substr($row['priv_handy'], 0, 4);

if ($row['date_starb'] == 0 AND in_array($needle,$haysack)) {
   // ... 
}

答案 1 :(得分:0)

来到这里期待这是数据库,而不是PHP - 我不是很好的PHP但是把它当作伪代码并将其翻译成php?

我可能会写一些类似的东西:

http://<your domain>/xyz.jsp?operation=getnamelist

基本上定义一个包含所有选项的字符串,然后在其中搜索变量内容