首先,我有一个数组,它通过 switch 语句传递,以匹配每个值的正则表达式,然后根据它是否匹配执行查询。我的问题是,如果数组包含 1 个或多个与正则表达式之一匹配的值,我想要定义的查询来过滤为该数组执行的任何过去或未来查询的结果,我正在考虑 INTERSECT SQL 命令但不能想想这将如何实现,因为我不知道将匹配多少个案例,而且我不想添加大量 if/else 语句。
到目前为止,这是我的代码示例:
$dataArray = explode(',', $data)
$query = mysqli->prepare("SELECT * FROM table WHERE ? Like ?")
foreach ($dataArray as $key => $value) {
switch ($value) {
case preg_match('/(^abcd)/', $value):
$query->bind_param("ss", $var1, $var2);
break;
... More cases ...
default:
$query = bind_param("ss", $var3, $var4);;
break;
};