Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql-从数组中查找字符串_Mysql_Arrays_Sql Like - Fatal编程技术网

mysql-从数组中查找字符串

mysql-从数组中查找字符串,mysql,arrays,sql-like,Mysql,Arrays,Sql Like,数据库表: id| p1 | p2 | notes 1 | 1 | a | cat, mouse, dog 2 | 1 | a | cat, horse, dog 我现在需要运行一个查询,选择notes不包含$Exclutions数组中定义的字符串的行。我尝试了类似“%mouse%”的运算符,但出现了一个错误 $exclusions = array ("mouse"); if($row['p1'] == 1 && $row['p2'] == "a" && $row['notes'] no

数据库表:

id| p1 | p2 | notes 1 | 1 | a | cat, mouse, dog 2 | 1 | a | cat, horse, dog 我现在需要运行一个查询,选择notes不包含$Exclutions数组中定义的字符串的行。我尝试了类似“%mouse%”的运算符,但出现了一个错误

$exclusions = array ("mouse"); if($row['p1'] == 1 && $row['p2'] == "a" && $row['notes'] not like '%mouse%') {...} 多谢各位

if($row['p1'] == 1 && $row['p2'] == "a" && $row['notes'] not like '%mouse%') {...}
这不是MySQL语法。它看起来像PHP,在PHP中不能使用like。尝试使用字符串比较运算符,如strstr

Mysql风格

不使用鼠标获取所有行的查询可以是:

或者从php数组中获取排除项:

$condition=WHERE; $first=true; foreach$除外责任作为$ex{ 如果!$first$条件。=和;//或使用或 $condition.=`notes`不像\%$ex%\; $first=false; } $complete_query=从`tablename`$condition;中选择*;;
看起来您是在混合使用PHP代码和sql执行逻辑。要在php中实现这一点,您可以

!strstr($row['notes'], 'mouse')
也就是说,如果$row['notes'中没有出现鼠标


这个!如果没有出现,将使其返回true。

如果没有更多的参考,很难确定语法问题可能是什么…例如,我看不到WHERE…is there and missing,或or?不像“%mouse%”是正确的语法,所以在SQL语句的其余部分中使用它肯定是错误的。我猜OP希望在PHP代码中完成逻辑。因此SQL语句很可能是select*from表;现在还不清楚他们是想通过sql命令还是php代码来解决问题。谢谢-这很有效!如果要排除多个字符串,我如何修改此项?抱歉,由于出现错误,我需要删除最后一条注释。最好在纸上写下您希望代码如何运行的逻辑,这样您就不会被NOT、and和OR混在一起。例如,您不希望任何包含鼠标或狗的结果看起来像:!strstr$行['notes'],'mouse'| | |!strstr$row['notes'],'dog'的字面意思是:没有老鼠或狗出现。。。。您也可以在不使用NOT操作数的情况下编写代码-strstr$row['notes'],'mouse'-这意味着,如果notes包含鼠标。。。实际上,-| |操作数似乎不起作用,而一个接一个地堆叠&&
!strstr($row['notes'], 'mouse')